Sed
Résolu
dino
-
dino -
dino -
Bonjour,
J'ai une liste de fichiers >300 ,je veux remplace un mot a l'interrieur de tous ces fichier par la commande sed
for i in listdeficier do
cat $i|sed "s/ABCD/DEF/g"
qlq a une idée ?
Merci
J'ai une liste de fichiers >300 ,je veux remplace un mot a l'interrieur de tous ces fichier par la commande sed
for i in listdeficier do
cat $i|sed "s/ABCD/DEF/g"
qlq a une idée ?
Merci
Configuration: Windows XP / Firefox 3.6
8 réponses
-
Salut,
sed -is 's/ABC/DEF/g' fichier*
Où fichier* est à remplacer par le terme adéquat (expansion comprise).
-
Merci pour ta reponse rapide !
Mais voila ce que j'ai :
set -vx
for i in list.txt do
cat $i|sed 's/ABC/DEF/g' $i
done
A l'execution j'ai :
Syntax error at line 5 : `cat' is not expected.
une idée ?
Merci-
Ta liste de fichier est dans un fichier texte ?
Lesdits fichiers (ceux de la liste) sont dans le même répertoire que le script ?
Sinon ma commande est faite pour être lancée depuis un terminal (sans passer par un script et sans boucle) à conditions d'avoir un dénominateur commun aux fichiers à prendre en compte (par exemple *.txt).
-
-
-
Exemple beaucoup plus parlant :
[reptest]$ ls -1 fichier1 fichier2 fichier3 [reptest]$ cat fichier1 Ligne 1 fchier1 Ligne 2 fchier1 Ligne 3 fchier1 Ligne 4 fchier1 Ligne 5 fchier1 Ligne 6 fchier1 Ligne 7 fchier1 Ligne 8 fchier1 Ligne 9 fchier1 Ligne 10 fchier1 [reptest]$ cat fichier2 Ligne 1 fchier2 Ligne 2 fchier2 Ligne 3 fchier2 Ligne 4 fchier2 Ligne 5 fchier2 Ligne 6 fchier2 Ligne 7 fchier2 Ligne 8 fchier2 Ligne 9 fchier2 Ligne 10 fchier2 [reptest]$ cat fichier3 Ligne 1 fchier3 Ligne 2 fchier3 Ligne 3 fchier3 Ligne 4 fchier3 Ligne 5 fchier3 Ligne 6 fchier3 Ligne 7 fchier3 Ligne 8 fchier3 Ligne 9 fchier3 Ligne 10 fchier3 [reptest]$ sed -is 's/Ligne 5/blablabla/' fich* [reptest]$ cat fichier1 Ligne 1 fchier1 Ligne 2 fchier1 Ligne 3 fchier1 Ligne 4 fchier1 blablabla fchier1 Ligne 6 fchier1 Ligne 7 fchier1 Ligne 8 fchier1 Ligne 9 fchier1 Ligne 10 fchier1 [reptest]$ cat fichier2 Ligne 1 fchier2 Ligne 2 fchier2 Ligne 3 fchier2 Ligne 4 fchier2 blablabla fchier2 Ligne 6 fchier2 Ligne 7 fchier2 Ligne 8 fchier2 Ligne 9 fchier2 Ligne 10 fchier2 [reptest]$ cat fichier3 Ligne 1 fchier3 Ligne 2 fchier3 Ligne 3 fchier3 Ligne 4 fchier3 blablabla fchier3 Ligne 6 fchier3 Ligne 7 fchier3 Ligne 8 fchier3 Ligne 9 fchier3 Ligne 10 fchier3 [reptest]$
;-)) -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
je l'ai executer telle qu'elle est sous mon chemin voila ce que j'ai eu :
sed -is 's/ABCD/DEF/' *fichier
sed: Not a recognized flag: i
Usage: sed [-n] Script [File ...]
sed [-n] [-e Script] ... [-f Script_file] ... [File ...] -
-
Ok, donc effectivement il faudra passer par un script ;-\
#! /bin/sh #set -xv cd /chemin/rep for i in * do sed 's/ABC/DEF/g' "$i" > "tmp_$i" && mv "tmp_$i" "$i" done
$ man woman
Il n'y a pas de page de manuel pour woman.
GNU/Linux : Gnu/Linux is Not Ubuntu ! -