比方说,在你的工作date间,你反复遇到以下forms的列表输出(在我的Rails工作目录中执行svn st ): ? changes.patch M app/models/superman.rb A app/models/superwoman.rb 为了处理命令的输出 – 在这种情况下是文件名 – 需要进行某种parsing,以便第二列可以用作下一个命令的input。 我一直在做的是使用awk来获得第二列,例如当我想删除所有文件(不是那是一个典型的用例:),我会这样做: svn st | awk '{print $2}' | xargs rm 由于我input了很多,所以一个自然的问题是:在bash中是否有一个更短的(因此更酷)的方式来完成这个任务? 注:我所要求的实质上是一个shell命令的问题,即使我的具体例子是在我的svn工作stream程。 如果你觉得工作stream是愚蠢的,并build议一种替代方法,我可能不会投票给你,但其他人可能,因为这里的问题是真正如何获得第b列中的第n列命令输出,以尽可能最短的方式。 谢谢 :)
据我所知,variables赋值是相同的,不pipe是否在“导出”之前。 这是为了什么?
什么types的参数/标志可以使用Unix find命令,以便我search可执行文件?
我试图得到一个bash脚本的引用参数安全地被嵌套的脚本接收。 有任何想法吗? test.sh #!/bin/bash echo $* bash myecho.sh $* myecho.sh #!/bin/bash echo $1 echo $2 echo $3 echo $4 样品: bash test.sh aaa bbb '"ccc ddd"' 结果: aaa bbb "ccc ddd" aaa bbb "ccc ddd" 想要的结果 aaa bbb "ccc ddd" aaa bbb ccc ddd
我有一个团队成员无意中把150多个当地分支机构推到了我们的中央仓库。 谢天谢地,他们都有相同的前缀。 使用这个前缀,是否有一个git命令或很酷的小shell脚本我可以使用,将一次删除所有这些?
我正在比较bash中的string。 我已经find了如何在stackoverflow上做的答案。 在脚本中,我正在使用在提到的问题中由Adam提交的代码: #!/bin/bash string='My string'; if [[ "$string" == *My* ]] then echo "It's there!"; fi needle='ys' if [[ "$string" == *"$needle"* ]]; then echo "haystack '$string' contains needle '$needle'" fi 我也尝试了从第二篇文章中可以find的ubuntuforums的方法 if [[ $var =~ regexp ]]; then #do something fi 在这两种情况下,我收到错误: [[: not found 我究竟做错了什么?
从shell脚本中,如何检查目录是否包含文件? 类似的东西 if [ -e /some/dir/* ]; then echo "huzzah"; fi; 但是如果目录包含一个或多个文件(上面的文件只能与0或1个文件一起使用),那么这种方法是有效的。
所以我学习在Rails中开发,并发现了zsh的力量。 但是,对于我的其他一些任务,我希望使用普通的Bash。 虽然他们都是一样的,但是在某些情况下,我只是觉得自己可以放心。 如何来回切换,或打开和closureszsh? 谢谢!
我知道你可以做mkdir来创build一个目录然后touch来创build一个文件,但是没有办法一次完成两个操作吗? 即如果我想要做下面的文件夹other不存在: cp /my/long/path/here/thing.txt /my/other/path/here/cpedthing.txt 错误: cp: cannot create regular file `/my/other/path/here/cpedthing.txt': No such file or directory 有没有人想出一个函数作为解决这个问题的方法?
我有一个情况,我想要一个bash脚本来replace文件中的整个行。 行号总是相同的,所以可以是一个硬编码的variables。 我不是要replace那一行中的一些子string,我只是想用一个新行来完全replace这一行。 是否有任何bash方法来做到这一点(或简单的可以扔到.sh脚本中)。