小编Sv1*_*Sv1的帖子

bash:获得第n列输出的最短路径

假设您在工作日期间反复遇到bash中某些命令的以下形式的列化输出(在我的情况下,svn st在我的Rails工作目录中执行):

?       changes.patch
M       app/models/superman.rb
A       app/models/superwoman.rb
Run Code Online (Sandbox Code Playgroud)

为了使用命令的输出 - 在这种情况下是文件名 - 需要某种解析,以便第二列可以用作下一个命令的输入.

我一直在做的是用来awk获取第二列,例如当我想删除所有文件(不是那个典型的用例:)时,我会这样做:

svn st | awk '{print $2}' | xargs rm
Run Code Online (Sandbox Code Playgroud)

由于我输入了很多,一个自然的问题是:在bash中有没有更短(更酷)的方法来实现这一点?

注意:我所要求的实际上是一个shell命令问题,即使我的具体示例是在我的svn工作流程上.如果您认为工作流程很愚蠢并建议另一种方法,我可能不会投票给您,但其他人可能会,因为这里的问题实际上是如何以最短的方式获得bash中的第n列命令输出.谢谢 :)

bash awk

148
推荐指数
6
解决办法
22万
查看次数

Bash:将文本文件拆分为包含非字母数字字符作为分隔符的单词

让我们说" textfile "包含以下内容:

lorem$ipsum-is9simply the.dummy text%of-printing
Run Code Online (Sandbox Code Playgroud)

并且您想要在单独的行上打印每个单词.但是,单词不仅应由空格定义,还应由所有非字母数字字符定义.所以结果应该是这样的:

 lorem
 ipsum  
 is9simply  
 the  
 dummy  
 text  
 of  
 printing
Run Code Online (Sandbox Code Playgroud)

如何使用Bash shell完成此操作?



一些说明:

bash scripting parsing

8
推荐指数
1
解决办法
5874
查看次数

标签 统计

bash ×2

awk ×1

parsing ×1

scripting ×1