Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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... tongue
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

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.


-- Lucid Lynx --

Hors ligne

#9 Le 07/09/2009, à 01:35

Shrat

Re : commande rechercher et remplacer

Totor a écrit :
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

Re : commande rechercher et remplacer

Mer ci beaucoup smile

Hors ligne