获取 xargs 以允许多个参数命令

Get xargs to allow multiple arguments to command

我有一个参数文件:

file.txt:

1 2 3
a b c
4 5 6

我想将它们传递给带有 3 个参数的命令。作为一个最小的例子,如果您直接使用“-I”,xargs 会将命令解析为单个字符串:

echo '1 2 3' | xargs -I@ python -c "import sys; print(sys.argv)" @              
>>> ['-c', '1 2 3']

奇怪的是,$(echo ...) 技巧不起作用:

echo '1 2 3' | xargs -I@ python -c "import sys; print(sys.argv)" $(echo @)
>>> ['-c', '1 2 3']

即使在同一个地方的字符串文字会:

echo '1 2 3' | xargs -I@ python -c "import sys; print(sys.argv)" $(echo '1 2 3')
>>> ['-c', '1', '2', '3']
xargs -n 3 cmd

执行 cmd,一次最多包含三个参数。

例如:

xargs -n 3 echo < file.txt
# gives
1 2 3
a b c
4 5 6

xargs -n 2 echo < file.txt
# gives
1 2
3 a
b c
4 5
6