Tag: bash

如何find两个date之间的差异?

A = “2002-20-10” B = “2003-22-11” 如何find两个date之间的差异?

如何从ffmpeg输出中提取持续时间?

要获得关于媒体文件的大量信息,可以做 ffmpeg -i <filename> 在哪里输出很多线路,特别是一个线路 Duration: 00:08:07.98, start: 0.000000, bitrate: 2080 kb/s 我只想输出00:08:07.98 ,所以我试试 ffmpeg -i file.mp4 | grep Duration| sed 's/Duration: \(.*\), start/\1/g' 但是它可以印刷一切,而不仅仅是长度。 甚至ffmpeg -i file.mp4 | grep Duration ffmpeg -i file.mp4 | grep Duration输出一切。 我怎样才能得到持续时间的长度?

无法从site-packages目录加载通过pip安装的Python模块

我正在尝试安装和使用Evernote模块( https://github.com/evernote/evernote-sdk-python )。 我跑pip install evernote ,它说,安装工作。 我可以确认evernote模块存在于/usr/local/lib/python2.7/site-packages 。 但是,当我尝试运行python -c "import evernote"我得到以下错误: Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named evernote 这是我的.bash-profile的内容: [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* # Setting PATH for Python 3.3 # The […]

在bash中用空格作为函数parameter passing一个string

我正在写一个bash脚本,我需要将包含空格的string传递给我的bash脚本中的一个函数。 例如: #!/bin/bash myFunction { echo $1 echo $2 echo $3 } myFunction "firstString" "second string with spaces" "thirdString" 运行时,我期望的输出是: firstString second string with spaces thirdString 但是,实际输出是: firstString second string 有没有办法传递一个string与空格作为一个单一的参数在bash中的函数?

如何在Makefile目标中使用Bash语法?

我经常发现Bash语法非常有用,例如像diff <(sort file1) <(sort file2)这样的进程replace。 是否有可能在Makefile中使用这样的Bash命令? 我在想这样的事情: file-differences: diff <(sort file1) <(sort file2) > $@ 在我的GNU Make 3.80中,由于它使用shell而不是bash来执行命令,所以会出现错误。

在bash脚本中用xargs调用函数

我正在尝试使用xargs并行调用更复杂的函数。 #!/bin/bash echo_var(){ echo $1 return 0 } seq -f "n%04g" 1 100 |xargs -n 1 -P 10 -i echo_var {} exit 0 这将返回错误 xargs: echo_var: No such file or directory 任何关于如何使用xargs来完成这个任何想法,或任何其他解决scheme将是受欢迎的。 谢谢!

使用sed来批量重命名文件

目的 更改这些文件名: F00001-0708 RG-biasliuyda F00001-0708-CS-akgdlaul F00001-0708-VF-hioulgigl 到这些文件名: F0001-0708-RG-biasliuyda F0001-0708-CS-akgdlaul F0001-0708-VF-hioulgigl shell代码 去testing: ls F00001-0708-*|sed 's/\(.\).\(.*\)/mv & \1\2/' 去表演: ls F00001-0708-*|sed 's/\(.\).\(.*\)/mv & \1\2/' | sh 我的问题 我不明白sed代码。 我明白什么是替代命令 $ sed 's/something/mv' 手段。 我有一些正则expression式。 但我不明白这里发生了什么事情: \(.\).\(.*\) 或在这里: & \1\2/ 前者对我来说就是:“一个单一的字符,后面跟着一个单一的字符,然后是任何单个字符的长度序列” – 但是当然,除此之外还有更多。 就后者而言: & \1\2/ 我不知道。 我真的想了解这个代码。 请帮帮我,伙计们

如何非交互式地指定psql的密码?

我正在尝试使用shell脚本自动化数据库创build过程,还有一件事是通过将密码传递给psql来实现的。 以下是shell脚本的一些代码: psql -U $DB_USER -h localhost -c"$DB_RECREATE_SQL" 如何以非交互方式将密码传递给psql? 谢谢!

如何在一个双引号里面加双引号?

任何人都可以告诉我如何在bash中双string内部双引号转义? 例如在我的shell脚本中 #!/bin/bash dbload="load data local infile \"'gfpoint.csv'\" into table $dbtable FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY \"'\n'\" IGNORE 1 LINES" 我无法正确地得到ENCLOSED BY \"双引号转义。我不能使用单引号为我的variables,因为我想使用variables$dbtable 。

确保只有一个Bash脚本的一个实例正在运行的最佳方法是什么?

确保给定脚本的一个实例正在运行的最简单/最好的方法是什么?假设它是Linux上的Bash? 目前我正在做: ps -C script.name.sh > /dev/null 2>&1 || ./script.name.sh 但它有几个问题: 它把脚本之外的检查 它不会让我从单独的帐户运行相同的脚本 – 我有时会这样做。 -C只检查进程名称的前14个字符 当然,我可以编写自己的pidfile处理,但我觉得应该有一个简单的方法来做到这一点。