在这个单行中复制xargs的目的

时间:2014-02-11 11:39:12

标签: unix find xargs

有谁能帮我理解下面的单行程?

find | xargs grep 'patt' -sl | xargs -L1 sed 's/patt/repl/g'

为什么存在两个xargs以及为什么它不能组合, xargs -L 的手册页说:

-L max-lines: Use at most max-lines nonblank input lines per command line.  Trailing blanks cause an input line to be logically continued on the next input line.  Implies -x

我无法解释。

1 个答案:

答案 0 :(得分:1)

第一个xargs使用-l选项grep,这使得它只打印与模式匹配的文件的名称。因此,这将find列出的所有文件作为输入,并将其过滤到包含该模式的文件。

第二个xargs在每个文件上运行sed,以替换替换模式。