查找并替换文件中的字符串

ter*_*d25 15 shell scripting replace file

我正在尝试查找并替换文件夹中的字符串.

有人可能会帮助我吗?

我的脚本如下:

#!/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
Run Code Online (Sandbox Code Playgroud)

现在这似乎找到字符串'This is a'并替换为'我是',但这仅打印到屏幕.

我需要它来替换文件本身.

谢谢

cod*_*ict 29

使用-i选项 sed进行更改:

sed -i "s/$OLD/$NEW/g" "$f"
    ^^
Run Code Online (Sandbox Code Playgroud)