Bonjour,
je me souviens plus trop la commande me permettant faire une modification sur chaque fichier se trouvant dans un répertoire. Après chaque modification écrit chaque fichier dans un autre répertoire.
Fichiersource=/file_source/
fichierudate=/file_update/
ls $Fichiersource
1.txt 2.txt 3.txt
old_mot=`cat $Fichiersource/*.txt | grep "MODO" | awk '{print $2}' | cut -d'"' -f2`
new_mot=BOBO
for i in $Fichiersource/*.txt
do
cat $i | sed "s/$old_mot/$new_mot/ > $fichierudate
done
Voila mais ça fonctionne pas.
Le but il doit modifier le mot "MODO" par "BOBO" dans chaque fichier txt a chaque modification il écrit le fichier modifier dans le répertoire $fichierudate
Je me souviens plus trop comment faire…
Cordialement..
# je ne comprend pas tout
Posté par NeoX . Évalué à 2.
je ne comprend pas tous le charabia au dessus de ta boucle
avec le old_mot qui cherche MODO et nous sort uniquement la 2e colonne, pour n'en prendre que la 2e partie apres le "
mais
fait exactement ce que tu demandes,
sauf qu'avec le simple
>
tu effaces le fichier à chaque ecrituredonc tu n'as plus alors que la derniere ligne ou le dernier fichier.
il te faut peut-etre
>>
pour coller les 3 fichiers ensembleou bien $fichierudate est un dossier (ce qui semble etre l'hypothese en debut du script) et il te manque une destination dans ce dossier
par exemple
> $fichierudate/$i
qui va creer un fichier du meme nom que le fichier d'origine, mais dans le dossier
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.