假设在您的工作日中,您反复遇到bash中某个命令的以下形式的列化输出形式(对于我而言,是svn st
在我的Rails工作目录中执行):
? changes.patch
M app/models/superman.rb
A app/models/superwoman.rb
为了处理命令的输出(在本例中为文件名),需要进行某种形式的解析,以便将第二列用作下一条命令的输入。
我一直在做的事情是使用awk
第二列,例如,当我想删除所有文件(不是那是典型的用例:)时,我会这样做:
svn st | awk '{print $2}' | xargs rm
由于我输入了很多内容,一个自然的问题是:在bash中完成此操作的方法是否更短(因此更酷)?
注意:尽管我的具体示例在我的svn工作流程中,但我要问的实际上是一个shell命令问题。如果您认为工作流程很愚蠢,并且建议使用其他方法,那么我可能不会拒绝您,但是其他人可能会拒绝,因为这里的问题实际上是如何以最短的方式以bash格式输出第n列命令。谢谢 :)