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)