Tag: bash

bash正则expression式匹配string

我想写一个包含一个函数,所以当给.tar , .tar.bz2 , .tar.gz等文件的bash脚本,它使用焦油与相关的开关解压缩文件。 我正在使用,如果ELIF然后语句testing文件名,看看它以什么结束,我不能让它匹配使用正则expression式元字符。 为了不断重写脚本,我在命令行使用'test',我认为下面的语句应该可以工作,我已经尝试了括号,引号和metacharaters的所有组合,但仍然失败。 test sed-4.2.2.tar.bz2 = tar\.bz2$; echo $? (this returns 1, false) 我敢肯定,这个问题很简单,而且我到处都是,但我无法想象如何去做。 有人知道我怎么能做到这一点?

Bash脚本 – 如果,elif,else语句问题

我似乎无法弄清楚下面这个if语句与elif有关的问题。 请记住, printf还在开发中,我只是还没有在声明中对它进行testing,所以很可能是错误的。 我得到的错误是: ./timezone_string.sh: line 14: syntax error near unexpected token `then' ./timezone_string.sh: line 14: `then' 声明就是这样。 if [ "$seconds" -eq 0 ];then $timezone_string="Z" elif[ "$seconds" -gt 0 ] then $timezone_string=`printf "%02d:%02d" $seconds/3600 ($seconds/60)%60` else echo "Unknown parameter" fi

Bash:如何列出每个文件和目录的大小(recursion)并按大小sorting?

我发现在Bash中不容易获得目录的大小? 我想当我键入ls -<some options> , 它可以同时列出所有目录文件大小和文件大小的总和,并按大小顺序sorting。 那可能吗?

如何在Linux上用grepsearch包含dos命令行结尾的文件(CRLF)?

我想在Linux上使用grepsearch包含dos结尾的文件。 像这样的东西: grep -IUr –color '\r\n' . 上述似乎匹配字面rn这是不是所需的。 这个输出将通过xargs传入todos来将crlf转换为lf grep -IUrl –color '^M' . | xargs -ifile fromdos 'file'

Shell脚本中的关联数组

我们需要一个脚本来模拟关联数组或像Shell数据结构的脚本,任何一个正文?

bash脚本 – 查找包含文本的文件

在bash中,我想为包含不区分大小写的string"document.cookie" | "setcookie"每个types为.php|.html|.js的文件返回文件名(和文件path) "document.cookie" | "setcookie" 我该怎么做?

在bash中pipe道stdout和stderr?

看来新版本的bash有&>运算符(如果我理解正确的话),将stdout和stderrredirect到一个文件( &>>追加到文件中,正如Adrian所阐明的那样)。 实现同样的事情最简单的方法是什么,而是滚动到另一个命令? 例如,在这一行中: cmd-doesnt-respect-difference-between-stdout-and-stderr | grep -i SomeError 我希望grep匹配stdout和stderr中的内容(实际上,将它们合并为一个stream)。 注意 :这个问题是关于pipe道问题, 而不是redirect – 所以它不是它现在被标记为重复的问题的重复。

bash获取当前目录的父目录

如果我有这样的文件path /home/smith/Desktop/Test /home/smith/Desktop/Test/ 我该如何改变string,以便得到父目录? 例如 /home/smith/Desktop /home/smith/Desktop/

哪些字符需要在Bash中转义? 我们怎么知道它?

是否有需要在Bash中转义的字符的全面列表? 可以用sed检查吗? 特别是,我正在检查是否需要转义% 。 我试过了 echo "h%h" | sed 's/%/i/g' 并工作得很好,没有逃脱% 。 这是否意味着%不需要被转义? 这是检查必要性的好方法吗? 而更一般的:他们是相同的字符在shell和bash逃脱吗?

从variables末尾删除斜杠

bash自动完成make /在一个目录的末尾如何我可以去掉这个? 感谢提示。 #!/bin/sh target=$1 function backup(){ date=`date "+%y%m%d_%H%M%S"` PWD=`pwd` path=$PWD/$target tar czf /tmp/$date$target.tar.gz $path } backup