有谁能帮我理解下面的单行程?
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
我无法解释。
答案 0 :(得分:1)
第一个xargs
使用-l
选项grep
,这使得它只打印与模式匹配的文件的名称。因此,这将find
列出的所有文件作为输入,并将其过滤到包含该模式的文件。
第二个xargs
在每个文件上运行sed
,以替换替换模式。