gpt4 book ai didi

linux - xargs 可以分隔参数吗?

转载 作者:IT王子 更新时间:2023-10-29 00:12:13 25 4
gpt4 key购买 nike

echo "'param 1' 'param 2'" | xargs -n2 -I@ echo [@] [@]

此命令输出:

[param 1 param 2] [param 1 param 2]

但是,我希望它输出:

[param 1] [param 2]

有没有办法用 xargs 做到这一点?我计划将它与 -L1 一起使用,这样该解决方案将处理多行以及多个参数。

最佳答案

对于那些通过搜索找到这个的人来说,接受的答案对我不起作用。

echo "'param 1' 'param 2'" | xargs -n1 | xargs -I@ echo \[@\] \[@\]

产生:

[param 1] [param 1]
[param 2] [param 2]

这不符合原始发帖人提出的让 xargs 在多个实体中读取、将它们分开并将它们作为单独参数发送到单个命令(OP 中的“echo”)的要求。 Xargs 不是为这类任务设计的!


bash 答案可以工作。

p=(`echo "param1 param2"`); echo [${p[0]}] [${p[1]}]

产生:

[param1] [param2]

但此解决方案不适用于多行。


使用 bash 将成对的行作为参数发送到单个命令的正确解决方案是:

(echo 'param 1'; echo 'param 2'; echo 'param 3'; echo 'param 4') | while read line1; read line2; do echo "[$line1] [$line2]"; done

产生:

[param 1] [param 2]
[param 3] [param 4]


GNU Parallel 答案确实有效,但必须制作并安装 GNU Parallel。 (与 Ubuntu 一起打包的版本不是 GNU Parallel。)

关于linux - xargs 可以分隔参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6099149/

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