echo "'param 1' 'param 2'" | xargs -n2 [email protected] echo [@] [@]
该命令输出:可以分隔参数吗?
[PARAM 1参数2] [PARAM 1参数2]
然而,我将它想输出:
[PARAM 1] [参数2]
有一种方法来用xargs
做这个?我打算使用此与-L1
因此该解决方案将处理多个线以及多个参数。
echo "'param 1' 'param 2'" | xargs -n2 [email protected] echo [@] [@]
该命令输出:可以分隔参数吗?
[PARAM 1参数2] [PARAM 1参数2]
然而,我将它想输出:
[PARAM 1] [参数2]
有一种方法来用xargs
做这个?我打算使用此与-L1
因此该解决方案将处理多个线以及多个参数。
对于那些从搜索中找到这个的人,我接受的答案并不适用。
echo "'param 1' 'param 2'" | xargs -n1 | xargs [email protected] echo \[@\] \[@\]
生产:
[param 1] [param 1]
[param 2] [param 2]
不符合原来的海报有xargs的多个实体读取给出的要求,把它们分开,并将它们发送到一个命令(“回声” OP)作为单独的参数。 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并行答案确实有效,但是GNU并行mu制作和安装。(与Ubuntu打包版本不是GNU并行。)
@wok,你能详细说明一下吗?如何使用xargs来生成我用bash生成的内容以及OP所需要的内容? – Sarkom 2013-11-04 03:10:16
如果您想对文件的每一行应用相同的处理方法,请参阅http://stackoverflow.com/a/19497860/376454。 – Wok 2013-11-04 14:23:15
我再次尝试过,并且**在Linux上的文件**,我**需要**使用'xargs',如我的答案中所示。只有你的答案,输出中没有**换行符**,只是'[参数1] [参数2] [参数3] [参数4]''。除了这些细节外,你的答案非常好。 – Wok 2013-11-04 14:58:08
echo "'param 1' 'param 2'" | xargs -n1 | xargs [email protected] echo \[@\] \[@\]
(在我的壳,我需要逃避[]
,您的里程可能会有所不同)。
我会如何区分第一个和第二个?例如,如果我想交换2个参数的顺序? – John 2013-09-27 00:35:15
随着GNU并行,你可以这样做:
(echo 'param 1'; echo 'param 2') | parallel -N2 echo '\[{1}] \[{2}]'
观看介绍视频,以了解更多:http://www.youtube.com/watch?v=OpaiGYxkSuQ
为什么棒xargs的? bash可以处理这个问题:
p=(`echo "param1 param2"`); echo ${p[0]} ${p[1]}
如图this answer建议,给定的一个echo
:
的param1 param2的
PARAM 3 param4
下列管材:
... | while read line1; read line2; do echo "[$line1] [$line2]"; done
生产:
[param1] [param2]
[param3] [param4]
如果你有一个包含许多行,每两个参数myFile.txt
文件,使用基于xargs
以下策略,以重新使用的参数为$f
和$g
:
cat myFile.txt | xargs -n1 | while read f; read g; do echo $f $g; done
什么你究竟想达到什么目的?你是否试图在执行一个命令之前“装饰”每个文件名参数,并且一次只处理一对文件名?我通常会为'xargs'编写一个脚本来执行这个工作 - 这比将xargs转换成它不想做的事情要痛苦得多。 – 2011-05-23 15:28:52