Si vous parvenez à jeter un coup d'œil plus profond à l'intérieur de l'écosystème de l'environnement du système d'exploitation Linux, vous découvrirez que ses commandes intégrées sont suffisantes pour résoudre la plupart de nos problèmes informatiques.
L'un de ces problèmes est la nécessité de rechercher et de remplacer du texte, un mot ou une chaîne dans un fichier, en particulier lorsque vous êtes dans un environnement de serveur. Une solution à ce problème vous permet de gérer les problèmes persistants tels que la mise à jour de "/etc/apt/sources.list ” après une mise à niveau réussie du système Linux.
Création du fichier texte de test sous Linux
Créez un fichier texte avec un nom comme "test.txt ” et remplissez-le avec du texte, un mot ou une chaîne de caractères. Laissez ce fichier être sur le même chemin que votre instance de terminal.
$ nano test.txt OR $ vi test.txt
Nous utiliserons la commande cat pour noter de manière flexible les modifications apportées à notre fichier de test créé.
$ cat test.txt
Utiliser Sed pour rechercher et remplacer du texte, un mot ou une chaîne dans un fichier
La puissance de cet éditeur de flux réside dans sa facilité à accomplir la transformation de base des flux d'entrée. La commande sed offre une approche rapide, facile et intemporelle pour rechercher et remplacer du texte, des mots ou des modèles de chaîne ciblés dans un fichier.
Rechercher et remplacer les premières occurrences de texte, mot ou chaîne dans le fichier
À partir de notre fichier de test créé, nous allons mettre à jour toutes les instances du mot "LinuxShellTips " avec l'alternative " ce site ”. La syntaxe de la commande sed que nous utiliserons pour accomplir cette tâche simple est la suivante :
$ sed -i 's/[THE_OLD_TERM]/[THE_NEW_TERM]/' [TARGETED_FILE]
En référence à la commande sed ci-dessus l'utilisation et la syntaxe, nous pouvons remplacer les "LinuxShellTips" de notre fichier de test " terme avec " ce site ” terme comme suit :
$ sed -i 's/LinuxShellTips/this site/' test.txt
Nous pouvons maintenant utiliser la commande cat pour prévisualiser les modifications proposées ci-dessus dans notre fichier de test afin de noter si des modifications substantielles ont eu lieu.
$ cat test.txt
Comme vous pouvez le voir, les deux premières occurrences du mot "LinuxShellTips » ont été remplacés par la phrase « ce site ”.
Rechercher et remplacer toutes les occurrences de texte, mot ou chaîne dans le fichier
Bien que la commande ci-dessus ait remplacé tous les modèles de mots ciblés dans notre fichier de test, son utilisation a tendance à être sélective dans la plupart des cas. La commande fonctionne mieux pour les petits fichiers car, dans les gros fichiers, seules les premières occurrences d'un modèle de mot ciblé peuvent bénéficier de son "rechercher et remplacer ’ prouesse.
Pour trouver et remplacer toutes les occurrences d'un modèle de mot dans n'importe quel fichier modifiable, vous devez adhérer à la commande sed suivante syntaxe.
$ sed -i 's/[THE_OLD_TERM]/[THE_NEW_TERM]/g' [TARGETED_FILE]
Comme vous l'avez noté, le 'g'
dans la syntaxe de commande de recherche et de remplacement ci-dessus agit comme une variable globale afin que toutes les occurrences globales d'un terme dans un fichier ciblé soient prises en compte.
$ sed -i 's/this site/LinuxShellTips/g' test.txt
La commande ci-dessus trouve toutes les occurrences globales du terme "ce site " et le remplace par le terme "LinuxShellTips ”.
Utiliser Awk pour rechercher et remplacer du texte, un mot ou une chaîne dans un fichier
Si vous connaissez l'utilitaire de ligne de commande awk, vous savez que ses puissantes métriques de langage de script en font un pro du traitement de texte. Les administrateurs système Linux et les utilisateurs professionnels trouvent cet outil efficace pour l'extraction de données et la création de rapports.
La commande awk La syntaxe d'une simple opération de recherche et de remplacement ressemble à l'extrait de code suivant :
$ awk '{gsub("[THE_OLD_TERM]","[THE_NEW_TERM]"); print}' [TARGETED_FILE]
Dans la syntaxe ci-dessus, awk remplacera THE_OLD_TERM à partir de THE_NEW_TERM dans le TARGETED_FILE et imprimez le contenu du fichier résultant sur le terminal système.
Adoptons une approche pratique :
$ awk '{gsub("Linux","ubuntu"); print}' test.txt
Avec les fonctionnalités dynamiques de sed et mal à l'aise outils de commande, vous devez maintenant rechercher, remplacer et écraser des modèles de texte, de mot ou de chaîne dans un fichier ciblé. Ces outils donnent à l'utilisateur du système la flexibilité nécessaire lorsqu'il se trouve sur une interface de ligne de commande.