Sto cercando di trovare e sostituire una stringa in una cartella di file.Trova e sostituisci stringa in un file
Qualcuno potrebbe aiutarmi?
Il mio script è il seguente:
#!/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
Ora, questo sembra trovare la stringa 'Si tratta di un' e sostituisce con 'Sono un', ma questo solo stampe a schermo.
Ho bisogno di sostituirlo nei file stessi.
Grazie
Ha funzionato alla grande! Sapevo che mi ero perso qualcosa. Grazie – terrid25
Ok, c'è un modo semplice per modificare lo script della mia shell, in modo che controlli le sottocartelle?/home/utente/test/xyz? – terrid25
#! Bin/bash OLD = "Questo è un" NEW = "I am a" BPATH = "/ home/utente/backup/foo" trovare. -name '* .shtml' -type f | mentre leggere il nome del file fare /bin/cp -f $ nomefile $ Bpath sed -i "s/$ OLD/$ NEW/g" $ nomefile fatto – terrid25