Я пытаюсь найти и заменить строку в папке файлов.
Может ли кто-нибудь мне помочь?
Мой сценарий выглядит следующим образом:
#!/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
Теперь кажется, что это находит строку «Это a» и заменяет ее «Я есть», но это выводит только на экран.
Мне нужно заменить в самих файлах.
Спасибо