试图回答Using Bash/Perl to modify files based on each file's name我在一个我不知道如何使用find
和sed
一起使用的地方结束。
假设有一个特定的文件结构,我们要在其中更改一行,并附加文件名。
如果这是一个正常的for
循环,我们会这样做:
for file in dir/*
do
sed -i "s/text/text plus $file/g" $file
done
但是,假设我们要用于find
更改所有子目录中的文件。在这种情况下,我会使用...
find . -type f -exec sed -i "s/text/text plus {}/g" {} \;
^
it does not like this part
但其中{}
的这些sed
不被接受,我得到了错误
sed: -e 表达式 #1, char 20: `s' 的未知选项
我发现了一些类似的问题(1),但在这种情况下无法将其概括到足以让我理解的程度。
我相信你们会为此提供一个很好的解决方案。谢谢!