(9 réponses)
Fermé il y a 6 ans.
Je sais que cette question a probablement déjà reçu une réponse. J'ai vu de nombreux fils de discussion à ce sujet à divers endroits, mais les réponses sont généralement difficiles à extraire pour moi. Je cherche de l'aide avec un exemple d'utilisation de la commande "sed".
Disons que je voulais agir sur le fichier "hello.txt" (dans le même répertoire que l'invite). Partout où il contenait l'expression «peu», il devrait être remplacé par «asd». À quoi ressemblerait la commande ?
Réponse acceptée :
sed
est le s streamer ed itor, en ce sens que vous pouvez utiliser |
(pipe) pour envoyer des flux standards (STDIN et STDOUT spécifiquement) via sed
et les modifier par programme à la volée, ce qui en fait un outil pratique dans la tradition de la philosophie Unix ; mais peut aussi éditer des fichiers directement, en utilisant le -i
paramètre mentionné ci-dessous.
Considérez ce qui suit :
sed -i -e 's/few/asd/g' hello.txt
s/
est habitué à s remplacer l'expression trouvée few
avec asd
:
Les rares, les braves.
Les asd, les braves.
/g
signifie « global », ce qui signifie qu'il faut le faire pour toute la ligne. Si vous omettez le /g
(avec s/few/asd/
, il doit toujours y avoir trois barres obliques quoi qu'il arrive) et few
apparaît deux fois sur la même ligne, seulement les premiers few
est remplacé par asd
:
Les quelques hommes, les quelques femmes, les braves.
Les hommes, les rares femmes, les braves.
Ceci est utile dans certaines circonstances, comme modifier les caractères spéciaux au début des lignes (par exemple, remplacer les symboles supérieurs à que certaines personnes utilisent pour citer le matériel précédent dans les fils de discussion par une tabulation horizontale tout en laissant une inégalité algébrique citée plus tard dans la ligne intacte), mais dans votre exemple où vous spécifiez que n'importe où few
se produit, il doit être remplacé, assurez-vous d'avoir ce /g
.
Les deux options (drapeaux) suivantes sont combinées en une seule, -ie
:
-i
l'option est utilisée pour modifier i n placer sur le fichier hello.txt
.
-e
l'option indique le e xpression/commande à exécuter, dans ce cas s/
.
Remarque :Il est important que vous utilisiez -i -e
à rechercher/remplacer. Si vous faites -ie
, vous créez une sauvegarde de chaque fichier avec la lettre "e" ajoutée.