我有超过1000个文件,并希望用其他短语替换所有文件中的特殊文本。
我怎么能用linux中的shell脚本来做呢?
答案 0 :(得分:5)
sed -i 's/old-word/new-word/g' *.txt
http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/
答案 1 :(得分:1)
这样的事情:
for file in *.txt
do
cp $file $file.tmp
cat $file.tmp | sed 's/foo/bar/g' > $file
done
答案 2 :(得分:1)
你也可以使用perl:
perl -pi -e 's/find/replace/g' *.txt
答案 3 :(得分:1)
只是打击
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
答案 4 :(得分:0)
使用sed。