Questions tagged «xargs»

13
使xargs对每行输入执行一次命令
如何使xargs对给定的每一行输入仅执行一次命令?它的默认行为是对行进行分块并执行一次,将多行传递给每个实例。 从http://en.wikipedia.org/wiki/Xargs: 查找/ path -type f -print0 | xargs -0 rm 在此示例中,find为xargs的输入提供了很长的文件名列表。然后xargs将此列表拆分为子列表,并为每个子列表调用rm一次。这比此功能等效的版本更有效: 找到/ path -type f -exec rm'{}'\; 我知道查找具有“ exec”标志。我只是引用其他资源中的一个示例性例子。
341 xargs 

10
使用xargs运行多个命令
cat a.txt | xargs -I % echo % 在上面的示例中,xargs echo %作为命令参数。但是在某些情况下,我需要多个命令而不是一个来处理参数。例如: cat a.txt | xargs -I % {command1; command2; ... } 但是xargs不接受这种形式。我知道的一个解决方案是,我可以定义一个包装命令的函数,但这不是管道,我不喜欢它。还有其他解决方案吗?
310 bash  xargs 

12
使xargs处理包含空格的文件名
$ ls *mp3 | xargs mplayer Playing Lemon. File not found: 'Lemon' Playing Tree.mp3. File not found: 'Tree.mp3' Exiting... (End of file) 我的命令失败,因为文件“ Lemon Tree.mp3”包含空格,因此xargs认为这是两个文件。我可以使find + xargs使用这样的文件名吗?
252 shell  find  xargs 

22
如何使用xargs复制名称中带有空格和引号的文件?
我正在尝试在目录下复制一堆文件,并且其中一些文件的名称中包含空格和单引号。当我尝试串起来find并grep用xargs,我得到以下错误: find .|grep "FooBar"|xargs -I{} cp "{}" ~/foo/bar xargs: unterminated quote 关于更可靠地使用xargs的任何建议? 这是在具有BSD的Mac OS X 10.5.3(Leopard)上xargs。

6
如果stdin输入为空,如何忽略xargs命令?
考虑以下命令: ls /mydir/*.txt | xargs chown root 目的是将所有文本文件的所有者更改mydir为root 问题是,如果其中没有.txt文件,mydir则xargs会引发错误,指出未指定路径。这是一个无害的示例,因为会引发错误,但是在某些情况下,例如在我需要在此处使用的脚本中,假定空白路径为当前目录。因此,如果我/home/tom/从那时开始运行该命令,如果没有结果,ls /mydir/*.txt并且所有文件/home/tom/的所有者都更改为root。 那么,如何让xargs忽略空结果?
188 bash  centos  xargs 

4
用xargs调用shell函数
我正在尝试使用xargs并行调用一个更复杂的函数。 #!/bin/bash echo_var(){ echo $1 return 0 } seq -f "n%04g" 1 100 |xargs -n 1 -P 10 -i echo_var {} exit 0 这将返回错误 xargs: echo_var: No such file or directory 任何有关如何使用xargs来完成此操作的想法,或者任何其他解决方案都将受到欢迎。
168 bash  sh  xargs 

3
如何在xargs命令中使用>?
我想找到一个bash命令,它将使我grep目录中的每个文件并将该grep的输出写入单独的文件。我的猜测是要做这样的事情 ls -1 | xargs -I{} "grep ABC '{}' > '{}'.out" 但是据我所知,xargs不喜欢双引号。但是,如果删除双引号,那么该命令会将整个命令的输出重定向到一个名为'{}'。out的文件中,而不是一系列单独的文件中。 有人知道使用xargs做到这一点的方法吗?我只是以这个grep场景为例来说明xargs的问题,因此任何不使用xargs的解决方案都不适合我。
160 bash  redirect  xargs 

2
使用xargs并行运行程序
我目前有当前脚本。 #!/bin/bash # script.sh for i in {0..99}; do script-to-run.sh input/ output/ $i done 我希望使用xargs并行运行它。我努力了 script.sh | xargs -P8 但是执行上述操作一次只能执行一次。-n8也没有运气。在要在循环脚本中执行的行的末尾添加&会尝试一次运行该脚本99次。我如何一次只执行8次循环,最多执行100次。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.