用shell编程替换文本
我有1000多个文件,希望用另一个短语替换其中的一个特殊文本 如何在linux中通过shell脚本实现这一点?使用。类似以下内容:用shell编程替换文本,shell,replace,Shell,Replace,我有1000多个文件,希望用另一个短语替换其中的一个特殊文本 如何在linux中通过shell脚本实现这一点?使用。类似以下内容: for file in *.txt do cp $file $file.tmp cat $file.tmp | sed 's/foo/bar/g' > $file done 您也可以使用perl: perl -pi -e 's/find/replace/g' *.txt 只是猛击 for file in *.txt do while
for file in *.txt
do
cp $file $file.tmp
cat $file.tmp | sed 's/foo/bar/g' > $file
done
您也可以使用perl:
perl -pi -e 's/find/replace/g' *.txt
只是猛击
for file in *.txt
do
while read -r line
do
case "$line" in
"*pattern*") line="${line//pattern/new}";;
esac
echo "$line"
done <"$file" > t
mv t "$file"
done
用于*.txt中的文件
做
而read-r行
做
大写“$line”
“*pattern*”)line=“${line//pattern/new}”;;
以撒
回音“$line”
完成
mvt“$file”
完成
您可以使用-i
就地编辑文件,因此不需要临时文件或循环。
for file in *.txt
do
while read -r line
do
case "$line" in
"*pattern*") line="${line//pattern/new}";;
esac
echo "$line"
done <"$file" > t
mv t "$file"
done