#1 Le 02/09/2009, à 17:49
- jj16
commande rechercher et remplacer
Bonsoir à tous,
Je voudrais savoir s'il existe une commande en ligne permettant de rechercher et de remplacer une
chaîne par une autre dans un ou plusieurs fichiers
Merci d'avance
jj16
Hors ligne
#2 Le 02/09/2009, à 19:01
- grim7reaper
Re : commande rechercher et remplacer
Salut,
Je peut te proposer cet uniligne Perl :
perl -pi.sav -e 's/chaîne à remplacer/nouvelle chaîne/g' fichier1 fichier2
Ce code va réaliser les modifications dans fichier1 et fichier2 et te créer une sauvegarde de ces 2 fichiers avant la modification (au cas où le résultat ne soit pas celui que tu attends) et les nommer "fichier1.sav" et "fichier2.sav".
Pour supprimer la sauvegarde il suffit de retirer ".sav" devant le "-pi".
Dernière modification par grim7reaper (Le 02/09/2009, à 19:01)
Hors ligne
#3 Le 02/09/2009, à 19:37
- jj16
Re : commande rechercher et remplacer
ok merci pour la réponse mais je connais pas perl comme language
mais il y a-t-il une commande propre à linux ?
Hors ligne
#4 Le 02/09/2009, à 19:53
- grim7reaper
Re : commande rechercher et remplacer
En général Perl est intégré de base dans de nombreuses distributions GNU/Linux donc ça pose rarement problème.
Sinon pour le faire en bash je pense que c'est facilement faisable avec la commande awk ou sed mais malheureusement je ne peut pas t'aider car mes connaissances en ce domaine sont plus que basique.
Dernière modification par grim7reaper (Le 02/09/2009, à 19:53)
Hors ligne
#5 Le 02/09/2009, à 20:43
- jj16
Re : commande rechercher et remplacer
ok je crois que sed va faire l'affaire.
merci encore
Hors ligne
#6 Le 03/09/2009, à 09:00
- Mpok
Re : commande rechercher et remplacer
Tout à fait : sed est là pour ça...
(après, ça dépend du traitement : si c'est compliqué, un script perl sera peut-être nécessaire ou plus adapté..)
Hors ligne
#7 Le 04/09/2009, à 19:40
- xamaco
Re : commande rechercher et remplacer
Mais perl c'est mieux...
Je dis ça sans être bon du tout avec perl. Je n'aime pas trop, la philosophie 'There's more than one way to do it' qui fait que la plupart des scripts sont incompréhensibles sauf pour ceux qui font du perl au moins 20 heures par semaine... Mais bon, je dois reconnaître qu'il n'y a rien qui approche. Et j'ai programmé plein de scripts awk, bien plus puissant que sed...
Hors ligne
#8 Le 04/09/2009, à 19:45
- Totor
Re : commande rechercher et remplacer
[...] awk, bien plus puissant que sed...
Ils ne sont pas comparables car ils n'ont pas la même vocation d'être.
-- Lucid Lynx --
Hors ligne
#9 Le 07/09/2009, à 01:35
- Shrat
Re : commande rechercher et remplacer
xamaco a écrit :[...] awk, bien plus puissant que sed...
Ils ne sont pas comparables car ils n'ont pas la même vocation d'être.
Tu pourrais développer s'il te plait? Ca m'intéresse.
Hors ligne
#10 Le 08/09/2009, à 08:52
- Totor
Re : commande rechercher et remplacer
Bonjour,
sed est un éditeur de flux et se limite à cette fonction. Il a pour objectif de modifier le contenu du flux fourni.
awk effectue aussi un traitement de flux, ligne par ligne tout comme comme sed, mais a pour vocation la génération d'un nouveau flux à partir des données initiales. C'est pourquoi il est doté d'un language plus fournie pour générer des données alors que sed est pourvue d'instructions de manipulation et de transformation de données.
La différence peut paraître subtile mais elle est là.
-- Lucid Lynx --
Hors ligne
#11 Le 08/09/2009, à 11:31
- Shrat
Hors ligne