我尝试用sed
但不知道如何用多个文件替换文本文件中的一些文本。
我用:
sed -i -- 's/SOME_TEXT/SOME_TEXT_TO_REPLACE/g /path/to/file/target_text_file
在处理多个文件之前,我使用以下命令在文本文件中打印了目标文本文件的路径:
find /path/to/files/ -name "target_text_file" > /home/user/Desktop/target_files_list.txt
现在我想sed
按照target_files_list.txt
.
您可以使用循环遍历文件
while ... do
:在你的情况下,你应该
printf ...
用sed
你想要的命令替换。但是,请注意,您只能使用以下方法实现您想要的
find
:您可以通过运行阅读更多关于
-exec
选项的信息man find | less '+/-exec '
:编辑:
正如用户 terdon和甜点在评论中正确指出的那样,必须使用
-r
with ,read
因为它可以正确处理反斜杠。它也被报道shellcheck
:所以应该是:
一种方法是使用
xargs
:来自
man xargs
:只需使用一个
for
循环。请注意,如果您遇到名称中带有换行符 (!) 的任何文件,您将遇到问题。(: