comment utiliser la commande sed pour remplcer une chaine de caractere par une autre dans un ficheir
je veux remplacer
par-}****
merci de m'aider-}
comment utiliser la commande sed pour remplcer une chaine de caractere par une autre dans un ficheir
je veux remplacer
par-}****
merci de m'aider-}
Vous pouvez vous inspirer de ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part cat mon_fichier | sed "s/\*//g"
voila mon script
jusqua' la c bon, mais dans mon fichier d'arrivée SGM-FLEx..., je dois enlever des étoiles (jai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 cd "c:/Temp_flex" for x in `ls` do cat $x >> SKB-FLEX.D`date +%d%m%y`_0000`date +%OH%OM` mv $x "c:/archive_flex_out" done mv SKB-FLEX.D`date +%d%m%y`_0000`date +%OH%OM` "c:/test/"que je veux remplacer pas juste
Code : Sélectionner tout - Visualiser dans une fenêtre à part -}*****)
Code : Sélectionner tout - Visualiser dans une fenêtre à part -}
Ceci veut dire : subsitue "*" (\*) par rien //
Code : Sélectionner tout - Visualiser dans une fenêtre à part s/\*//g
* fait partie des "Meta caractères" et pour ne pas etre interpreté comme tel , il faut le preceder d'un "anti slash"
Vous pouvez voir aussi la description de sed ici
ça ne marche pas, voila l'erreur qu'il me sort
voila la partie du script
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 sed: ?, *, +, or { } not preceded by valid regular expression sed: ?, *, +, or { } not preceded by valid regular expression
Code : Sélectionner tout - Visualiser dans une fenêtre à part cat $x | sed "s/\*****//g"
g compris, il faut mettre juste une seule étoile; ça marche mais juste sur la sortie standard (cad sur l'écran), comment faire de sorte que la modification soit définitive dans le fichier lui même
merci encore
A noter que toutes les étoiles du fichier vont disparaître.Envoyé par man sed
On peut également utiliser tr pour avoir le même résultat avec un syntaxe encore plus simple
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo "n'importe*quoi*" | tr -d '*'
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
c bon ça marche,
voila mon script
"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 cd "c:/Temp" for x in `ls` do cat $x |sed "s/\*//g" >>SKB.D`date +%d%m%y`_0000`date +%OH%OM` mv $x "c:/archive" done mv SKB.D`date +%d%m%y`_0000`date +%OH%OM` "e:/app/data/bo/
comme vous remarque le nom de mon fichier SKB.D....
est composée d'une date et d'une heure, j'aurai aimé le stocké dans une variable de peur que l'heure change au cour de l'exécution du script.
comment puis-je modifier mon script
merci encore pour votre aide précieuse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 bla=$(date) echo $bla
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
en csh
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 set V_FIC="SKB.D`date +%d%m%y`_0000`date +%OH%OM`" cd "c:/Temp" for x in `ls` do cat $x |sed "s/\*//g" >> $V_FIC mv $x "c:/archive" done mv $V_FIC "e:/app/data/bo/"
Partager