如何阻止xargs严重合并多个进程的输出?
我正在使用xargs该选项--max-args=0(或者-P 0)。 但是,这些过程的输出将合并到stdout流中,而无需考虑适当的行分隔。因此,我经常会出现以下行: <start-of-line-1><line-2><end-of-line-1> 当我在整个输出的模式中使用egrepwith时^,xargs这弄乱了我的结果。 是否有某种方法可以强制xargs按顺序写进程输出(只要一个进程的输出是连续的,任何顺序都可以)? 还是其他解决方案? 编辑:有关用例的更多详细信息: 我想从不同的主机下载并解析网页。由于每个页面需要大约一秒钟的加载时间,因此我要并行处理几十个页面。 我的命令具有以下形式: echo -n $IPs | xargs --max-args=1 -I {} --delimiter ' ' --max-procs=0 \ wget -q -O- http://{}/somepage.html | egrep --count '^string' 我使用bash而不是Perl之类的东西,因为主机IP($ IPs变量)和其他一些数据来自包含的bash文件。