J'essaie de trouver et de remplacer une chaîne dans un dossier de fichiers.Rechercher et remplacer une chaîne dans un fichier
Quelqu'un pourrait-il m'aider?
Mon script est la suivante:
#!/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
Maintenant, cela semble trouver la chaîne « Ceci est un » et remplace par « Je suis un », mais cela ne imprime à l'écran.
Je dois le remplacer dans les fichiers eux-mêmes.
Merci
A travaillé super! Je savais que j'avais raté quelque chose. Merci – terrid25
Ok, y at-il un moyen facile de modifier mon script shell, de sorte qu'il va vérifier dans les sous-dossiers?/home/utilisateur/test/xyz? – terrid25
#! Bin/bash OLD = "Ceci est un" NEW = "Je suis un" BPATH = "/ home/user/backup/foo" trouver. -name '* .shtml' -type f | while read nom faire /bin/cp -f nom $ $ Bpath sed -i "s/$ VIEUX/$ NOUVEAU/g" $ filename fait – terrid25