我试图找到并替换文件夹中的一个字符串.
有人可能帮我吗?
我的脚本如下:
#!/bin/bash OLD="This is a" NEW="I am a" DPATH="/home/user/test/*.txt" BPATH="/home/user/test/backup/foo" [ ! -d $BPATH ] && mkdir -p $BPATH || : for f in $DPATH do if [ -f $f -a -r $f ]; then /bin/cp -f $f $BPATH sed "s/$OLD/$NEW/g" "$f" else echo "Error: Cannot read $f" fi done
现在,这似乎找到了字符串“这是一个”,并替换为“我是一个”,但这只打印到屏幕.
我需要它来替换文件本身.
谢谢
使用sed的-i选项进行更改:
sed -i "s/$OLD/$NEW/g" "$f" ^^