remplacer la chaîne de texte dans le fichier [Guide]

L’édition manuelle de fichiers texte sous Linux peut être fastidieuse. C’est pourquoi il est bon de savoir comment remplacer rapidement des chaînes de texte dans des fichiers en utilisant la ligne de commande. Si vous êtes nouveau sur Linux et que vous ne savez pas comment le faire, nous pouvons vous aider! Suivez-nous pendant que nous vous montrons comment remplacer une chaîne de texte dans un fichier sous Linux!

Linux: remplacer la chaîne de texte

Remplacer la chaîne de texte dans le fichier – sed

L’outil sed est le meilleur moyen de remplacer une chaîne de texte dans un fichier sous Linux. La raison? Il est simple à utiliser et fait très bien son travail. Sed est généralement pré-installé sur 99% des systèmes d’exploitation Linux, il n’est donc pas nécessaire de l’installer pour l’utiliser.

Le remplacement d’une chaîne de texte dans un fichier par Sed se fait avec la commande sed -i. Voici comment l’utiliser. Tout d’abord, ouvrez une fenêtre de terminal sur le bureau Linux. Vous pouvez ouvrir une fenêtre de terminal en appuyant sur Ctrl + Alt + T sur le clavier.

Une fois que la fenêtre du terminal est ouverte et prête à être utilisée, écrivez sed -i dans l’invite du terminal. C’est le début de la commande de remplacement.

sed -i

Après avoir écrit la commande sed -i, ajoutez un guillemet. Ce guillemet est essentiel, car tout texte remplacé par sed -i doit commencer après cette marque.

sed -i '

Après la première marque, écrivez s /. Le s / va directement avant le texte existant que vous souhaitez remplacer en utilisant sed.

sed -i 's/

Maintenant que le s / est écrit dans l’invite de ligne de commande du terminal, il est temps d’indiquer à sed quel texte remplacer dans le fichier. Dans cet exemple, nous remplacerons le mot « pomme ».

sed -i 's/apple

Lorsque le texte que nous voulons remplacer est écrit dans la commande, l’étape suivante consiste à écrire le nouveau texte qui le remplacera. Dans cet exemple, nous remplacerons « pommes » par « oranges ».

sed -i 's/apples/oranges

Une fois que le texte que nous voulons remplacer est écrit dans la commande (oranges), fermez la commande avec g /. Le g / dit à sed de remplacer toutes les instances de texte (pommes) par le nouveau texte (oranges). Cela devrait ressembler à l’exemple ci-dessous.

Remarque: si vous ne souhaitez pas remplacer tous les textes du fichier (des pommes aux oranges, par exemple), supprimez le g et faites-le exécuter en tant que sed -i ‘s / pommes / oranges /’ à la place.

sed -i 's/apple/orange/g'

Enfin, indiquez à sed dans quel fichier se trouve le texte qui doit être remplacé. Dans cet exemple, fruit.txt dans le répertoire personnel est la cible.

sed -i 's/apples/oranges/g' ~/fruit.txt

Appuyez sur la touche Entrée pour exécuter la commande et remplacer votre chaîne de texte dans le fichier.

Remplacer la chaîne de texte dans le fichier – Perl

Une autre façon de remplacer une chaîne de texte dans un fichier sous Linux est d’utiliser le langage de programmation Perl. Perl est beaucoup utilisé pour le traitement de texte, donc naturellement, il peut échanger des chaînes de texte dans des fichiers et est parfait pour ce cas d’utilisation.

Pour commencer, assurez-vous que Perl est installé sur votre PC Linux. La plupart des systèmes d’exploitation Linux sont livrés avec Perl installé. Cependant, si vous ne l’avez pas, consultez la page d’aide de votre système d’exploitation pour savoir comment le faire fonctionner.

L’utilisation de Perl pour remplacer des chaînes de texte dans un fichier nécessite le terminal. Ouvrez un terminal sur le bureau Linux en appuyant sur Ctrl + Alt + T sur le clavier. Ou, recherchez «Terminal» dans le menu de l’application et lancez-le de cette façon.

Une fois que la fenêtre du terminal est ouverte et prête à être utilisée, commencez par taper perl -pe dans l’invite de ligne de commande. La commande perl -pe est ce qui est nécessaire pour remplacer une chaîne de texte dans un fichier.

perl -pe

Après avoir écrit perl -pe dans l’invite du terminal, vous devrez commencer par le premier guillemet. Cette marque indique à Perl où se trouve la zone de remplacement de texte dans la commande.

perl -pe '

Après le premier guillemet, ajoutez s /, suivi de la chaîne de texte que vous souhaitez remplacer, et d’un autre /. Par exemple, pour remplacer «pommes» dans le fichier fruit.txt, vous écrivez le texte suivant.

perl -pe 's/apples/

Après avoir écrit le (s) mot (s) que vous souhaitez remplacer, ajoutez le mot qui remplacera le texte existant. Par exemple, si vous voulez remplacer «pommes» dans «fruit.txt» par «oranges», ajoutez «oranges» après perl -pe ‘s / apples / pour qu’il ressemble à perl -pe’ s / pommes / oranges / .

perl -pe 's/apples/oranges/

Une fois que les deux chaînes de texte sont dans la commande, vous devrez spécifier le fichier d’entrée utilisé par Perl. Par exemple, si vous souhaitez remplacer du texte dans le fichier «fruit.txt», vous devrez le spécifier dans la commande.

Remarque: dans cet exemple, le fichier «fruit.txt» se trouve dans le répertoire personnel (~ /). Assurez-vous de remplacer «~ / fruit.txt» par l’emplacement de votre fichier texte pour que la commande fonctionne.

perl -pe 's/apples/oranges/' ~/fruit.txt

Maintenant que le fichier d’entrée (le fichier que vous modifiez avec Perl) est ajouté à la commande, la commande devrait ressembler à celle ci-dessous.

perl -pe 's/apples/oranges/' ~/fruit.txt > /tmp/output.txt;cat /tmp/output.txt > ~/fruit.txt

Lorsque la commande ci-dessus est exécutée, la chaîne de texte sera remplacée par le nouveau texte que vous avez spécifié. Dans notre exemple, nous avons remplacé « pommes » par « oranges ». Pour afficher les modifications, entrez la commande ci-dessous.

cat fruit.txt