获取 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
我有一个参数文件:
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