假设您在工作日期间反复遇到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列命令输出.谢谢 :)
我可以通过名字找到一个docker容器:docker ps --filter='name=mvn_repo'.有没有办法(不使用bash/awk/grep等)来否定这个过滤器并列出除了具有给定名称的容器之外的所有容器?