【发布时间】:2012-02-13 18:40:24
【问题描述】:
我正在尝试使用 grep 命令的输出来替换找到的所有文件。问题是找到的某些文件的名称中有空格。这是我使用的简化的 grep 命令(在多个邮件主机上查找多个名称)。
grep -Ril oldname@foo.com *
这会生成一个包含我需要的文件的列表,只列出文件名(-l 选项)。使用反引号我将文件名输入到 Perl 单行:
perl -pi -e 's/oldname\@foo\.com/newname\@bar.com/gi' `grep -Ril oldname@foo.com *`
当列出的所有文件的名称中都没有空格,但如果有空格,它就会中断。
通过 find 我知道我可以使用 -print0 和 xargs -0,但似乎没有任何与 grep 等效的东西。
我可以将grep 的输出放入一个文件中,然后读取它,但现在我想知道这是否可以作为单行。
【问题讨论】:
标签: grep whitespace backticks