【问题标题】:pipe result of cut to next argument and concat to string将 cut 的结果传递到下一个参数并连接到字符串
【发布时间】:2015-06-04 00:31:36
【问题描述】:

我有类似的东西:

cut -d ' ' -f2 | xargs cat *VAR_HERE.ss

我想使用 cut 的结果作为变量,并在 *. 之间连接 cut 的输出,以便 cat 使用该名称输出适当的文件。例如,如果 cut 的结果是:

$ cut -d ' ' -f2
001

我基本上想要第二个命令来做:

$ cat *001.txt

我已经看到 xargs 被使用,但我正在努力找出如何使用它来显式调用 cut 的输出,而不是假设第二个命令只需要确切的输出。显然在这里我想将 cut 的输出连接到一个字符串。

谢谢

【问题讨论】:

    标签: bash pipe concatenation xargs


    【解决方案1】:

    你可以这样做:

    cut -d ' ' -f2 | xargs -I {} bash -c 'cat *{}.txt'
    

    【讨论】:

    • @anubhava。谢谢。如果我有 -f2-3 并通过了它们,我将如何在 xargs 中显式调用 f2 和 f3?似乎使用 {} 符号会强制它们两者。
    • 我的意思是,我可以做 xargs - I {} {} bash -c 'echo {1} cat*{2}.txt' 吗?
    • 您可以使用xargs -n 2 bash -c 'echo "<$0><$1>"',其中$0$1 是第一个和第二个参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 2013-02-13
    • 2020-12-13
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    • 2021-12-31
    相关资源
    最近更新 更多