Terminal 101 Rechercher et remplacer à l'aide de Sed
CommentRemplacer toutes les occurrences de Word dans un seul fichier
Si vous avez un seul fichier dans lequel vous souhaitez remplacer toutes les occurrences d'un mot par un autre, vous pouvez facilement le faire en utilisant la commande suivante:
sed 's / FindThisWord / ReplaceWithThisWord / g' fichier.txt
Remplacer le mot “FindThisWord” dans la commande ci-dessus avec le mot que vous souhaitez remplacer, et remplacez le mot “ReplaceWithThisWord” dans la commande ci-dessus avec le mot que vous souhaitez remplacer par.
Cette commande ouvrira sed, qui imprimera à son tour le fichier texte à l'écran en remplaçant les occurrences de mots trouvés par le mot que vous souhaitez utiliser..
Donc, si nous avions le document suivant:
Apple est génial!
Nous pourrions exécuter la commande suivante pour remplacer “Pomme” dans le document texte ci-dessus avec “MacLife” au lieu:
sed 's / Apple / MacLife / g' échantillon.txt
Le document modifié sera imprimé à l'écran pour que vous puissiez voir.
Écrire des modifications dans le fichier
Tout va bien, mais la commande ci-dessus n'enregistre pas les modifications dans le fichier d'origine, elle n'imprime que le fichier mis à jour à l'écran. Pour réécrire les modifications dans un fichier de sortie, vous utiliserez plutôt la commande suivante:
sed -n '/ FindthisWord / ReplaceWithThisWord / gpw output.txt' fichier.txt
Donc, si nous continuons avec le même exemple ci-dessus, en remplaçant “Pomme” dans la phrase avec “MacLife,” puis utilisez la commande suivante:
sed -n 's / Apple / MacLife / gpw output.txt' sample.txt
Cela entraînera non seulement la modification du fichier et son impression à l'écran, mais également la réécriture des modifications dans un fichier “output.txt” (vous pouvez modifier ce nom dans la commande de remplacement de la chaîne.
Cory Bohon est un rédacteur technique indépendant, développeur indépendant sur Mac et iOS et photographe amateur. Suivez l'auteur de cet article sur Twitter.