我正在尝试将包含一组已知字符的文件列表传递给 sed 进行查找和替换。
对于包含多个 .xml 文件的目录:
ls -la
file1.xml
file2.xml
file3.xml
Run Code Online (Sandbox Code Playgroud)
每个都包含一个匹配的字符串:
grep -i foo *
file1.xml <foo/>
file2.xml <foo/>
file3.xml <foo/>
Run Code Online (Sandbox Code Playgroud)
使用 for 循环将 foo 替换为 bar:
for f in *.xml; do ls | sed -i "s|foo|bar|g" ; done
Run Code Online (Sandbox Code Playgroud)
返回:
sed: no input files
sed: no input files
sed: no input files
Run Code Online (Sandbox Code Playgroud)
我已经找到了一个可行的替代方案,所以这主要是为了我自己的启发。
find /dir/ -name '*.xml' -exec sed -i "s|foo|bar|g" {} \;
Run Code Online (Sandbox Code Playgroud)