如何从unix提示符查找和替换多文件

如何从unix提示符查找和替换多文件,unix,replace,find,Unix,Replace,Find,我想在目录(包括子文件夹)中的每个文件中用实际的ip(如“1.1.1.1”)替换“localhost”,并希望它记录更改的文件名。我很难做到这一点,我应该使用什么命令?find/path/to/all/files-type f-exec sed-I's/localhost/IP/g'{}\应该可以工作。或者您了解了如何使sed在找到的每个文件上工作 grep -r --files-with-matches localhost *|tee changed_files|xargs sed -i 's

我想在目录(包括子文件夹)中的每个文件中用实际的ip(如“1.1.1.1”)替换“localhost”,并希望它记录更改的文件名。我很难做到这一点,我应该使用什么命令?

find/path/to/all/files-type f-exec sed-I's/localhost/IP/g'{}\应该可以工作。或者您了解了如何使sed在找到的每个文件上工作

grep -r --files-with-matches localhost *|tee changed_files|xargs sed -i 's/localhost/1.1.1.1/g'

更改的文件将被记录到
changed\u files

结尾需要一个分号,这就是导致“缺少参数”错误的原因。@David:谢谢您的评论。我会校对我的答案。包括缺少的分号。