查找和替换在命令行中的多个文件
-
19-09-2019 - |
题
如何查找和替换在UNIX上的多个文件中的命令行的字符串?
解决方案
有很多方法。但其中一个答案将是:
find . -name '*.html' |xargs perl -pi -e 's/find/replace/g'
其他提示
像僵尸溶液(和更快的I假设),但具有的 SED 强>而不是Perl的(在许多发行版和OSX标):
find . -name '*.py' | xargs sed -i .bak 's/foo/bar/g'
这将替换所有的富的出现次数在您的Python文件使用的栏的当前目录下和与 .py.bak <每个文件创建备份/ em>的扩展。
和以除去德.bak文件:
find . -name "*.bak" -delete
我总是这样做,是 编脚本的或 前的脚本的
for i in "$@"; do ex - "$i" << 'eof'; done
%s/old/new/
x
eof
的 离 强>命令仅仅是:从VI线模式
使用查找和sed用名称或目录用空间使用这样的:
find . -name '*.py' -print0 | xargs -0 sed -i 's/foo/bar/g'
近期的bash shell,假设你不需要遍历目录
for file in *.txt
do
while read -r line
do
echo ${line//find/replace} > temp
done <"file"
mv temp "$file"
done
不隶属于 StackOverflow