Tôi đang cố gắng tìm và thay thế một chuỗi trong một thư mục tệp.tìm và thay thế chuỗi trong một tệp
Ai đó có thể giúp tôi?
kịch bản của tôi là như sau:
#!/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
Bây giờ điều này dường như để tìm chuỗi 'Đây là một' và thay thế với 'I am a', nhưng chỉ in này để sàng lọc.
Tôi cần nó để thay thế trong các tệp.
Cảm ơn
Đã làm việc tuyệt vời! Tôi biết tôi đã bỏ lỡ một cái gì đó. Cảm ơn, – terrid25
Ok, có một cách dễ dàng để sửa đổi kịch bản shell của tôi, để nó sẽ kiểm tra trong các thư mục con?/home/user/test/xyz? – terrid25
#! Bin/bash OLD = "Đây là" MỚI = "Tôi là" BPATH = "/ home/user/backup/foo" tìm. tên '* .shtml' -type f | khi đọc tên tệp do /bin/cp -f $ filename $ BPATH sed -i "s/$ OLD/$ NEW/g" $ filename done – terrid25