gpt4 book ai didi

bash:获得第n列输出的最短方法

转载 作者:行者123 更新时间:2023-11-29 08:38:15 25 4
gpt4 key购买 nike

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

?       changes.patch
M app/models/superman.rb
A app/models/superwoman.rb

为了处理命令的输出 - 在本例中为文件名 - 需要进行某种解析,以便第二列可以用作下一个命令的输入。

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

svn st | awk '{print $2}' | xargs rm

由于我经常输入此内容,一个自然的问题是:在 bash 中是否有更短(因此更酷)的方法来完成此操作?

注意:我要问的本质上是一个 shell 命令问题,尽管我的具体示例是在我的 svn 工作流程中。如果您觉得工作流程很愚蠢并提出替代方法,我可能不会投票给您,但其他人可能会,因为这里的问题实际上是如何以最短的方式在 bash 中获取第 n 列命令输出.谢谢:)

最佳答案

您可以使用 cut访问第二个字段:

cut -f2

编辑:抱歉,没有意识到 SVN 在其输出中不使用制表符,所以这有点没用。您可以根据输出定制 cut,但它有点脆弱 - 像 cut -c 10- 这样的东西可以工作,但确切的值将取决于您的设置。

另一个选项类似于:sed 's/.\s\+//'

关于bash:获得第n列输出的最短方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7315587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com