相关疑难解决方法(0)

如果stdin输入为空,如何忽略xargs命令?

考虑这个命令:

ls /mydir/*.txt | xargs chown root
Run Code Online (Sandbox Code Playgroud)

目的是将所有文本文件的所有者更改mydir为root

问题是,如果没有.txt文件,mydir则xargs会发出一条错误,指出没有指定路径.这是一个无害的例子,因为被抛出一个错误,但在某些情况下,如在我需要在这里使用的脚本,假设一个空白的路径是当前目录.因此,如果我/home/tom/从那时起运行该命令,如果没有结果,ls /mydir/*.txt并且所有文件/home/tom/都将其所有者更改为root.

那么我如何让xargs忽略空结果呢?

bash centos xargs

168
推荐指数
5
解决办法
3万
查看次数

有没有办法强制xargs一次发送多行?

我有一个工作,从一个\n分隔流中读取数据,并将信息一次发送到xargs处理1行.问题是,这不够高效,但我知道如果我改变程序使得xargs执行的命令一次发送多行而不是一行,它可以大大提高我的脚本的性能.

有没有办法做到这一点?我没有任何运气与各种组合-L-n.不幸的是,我认为我也坚持-I参数化输入,因为如果我不使用我的命令似乎不想采用标准输入-I.

基本的想法是我正在尝试使用xargs模拟小批量处理.

从概念上讲,这里有类似于我目前所写的内容

contiguous-stream | xargs -d '\n' -n 10 -L 10 -I {} bash -c 'process_line {}'

^在上面,process_line很容易改变,以便它可以同时处理多行,而这个功能现在是瓶颈.对于强调,以上,-n 10并且-L 10似乎没有做任何事情,我行仍在处理一次一个.

bash concurrency xargs batch-processing

0
推荐指数
1
解决办法
1342
查看次数

标签 统计

bash ×2

xargs ×2

batch-processing ×1

centos ×1

concurrency ×1