Maison  >  Article  >  Opération et maintenance  >  Comment remplacer des chaînes dans des fichiers sous Linux

Comment remplacer des chaînes dans des fichiers sous Linux

青灯夜游
青灯夜游original
2022-03-24 18:12:1726460parcourir

Sous Linux, vous pouvez utiliser la commande sed pour rechercher et remplacer des chaînes dans des fichiers. Cette commande utilise le mode d'édition de flux et peut faire correspondre et traiter les données dans des fichiers texte en fonction d'expressions régulières ; expression régulière à rechercher/valeur de remplacement/g' Nom de fichier sur lequel effectuer l'opération".

Comment remplacer des chaînes dans des fichiers sous Linux

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.

Lorsque vous travaillez avec des fichiers texte, vous devrez probablement rechercher et remplacer des chaînes dans le fichier. Sous Linux, cela peut être fait en utilisant la commande sed, qui est principalement utilisée pour remplacer du texte dans un fichier. Qu'est-ce que la commande

sed ? La commande sed représente l'éditeur de flux, qui est utilisé pour effectuer des opérations de texte de base sous Linux. Il peut exécuter diverses fonctions telles que rechercher, trouver, modifier, insérer ou supprimer des fichiers. La commande sed utilise le mode d'édition de flux et peut effectuer une correspondance d'expressions régulières complexe. La commande

sed fera correspondre et traitera les données dans des fichiers texte en fonction d'expressions régulières.

Il peut être utilisé aux fins suivantes :

Trouver et remplacer du contenu correspondant à un format donné.

  • Recherchez et remplacez le contenu correspondant au format donné dans la ligne spécifiée.

  • Recherchez et remplacez le contenu correspondant au format donné dans toutes les lignes.

  • Recherchez et remplacez deux modèles différents en même temps.

  • La commande sed remplace les chaînes dans les fichiers

Syntaxe sed commune pour remplacer les chaînes.

sed -i 's/Search_String/Replacement_String/g' Input_File
Nous devons d'abord comprendre la syntaxe sed pour ce faire. Voir les détails.

sed : Il s'agit d'une commande Linux.

  • -i : C'est une option de la commande sed, que fait-elle ? Par défaut, sed imprime les résultats sur la sortie standard. Lorsque vous utilisez sed pour ajouter cette option, cela modifiera le fichier en place. Lorsque vous ajoutez un suffixe (par exemple, -i.bak), une sauvegarde du fichier d'origine est créée.

  • s : La lettre s est une commande de substitution.

  • Search_String : recherchez une chaîne ou une expression régulière donnée.

  • Replacement_String : Chaîne de remplacement.

  • g : drapeau de remplacement global. Par défaut, la commande sed remplace la première occurrence du modèle sur chaque ligne ; elle ne remplace pas les autres correspondances dans la ligne. Cependant, lorsque le drapeau de remplacement sera fourni, toutes les allumettes seront remplacées.

  • / : délimiteur.

  • Input_File : Le nom du fichier pour effectuer l'opération.

  • Jetons un coup d'œil à quelques exemples courants d'utilisation des commandes sed pour rechercher et convertir du texte dans des fichiers.

  • Nous avons créé les fichiers suivants à des fins de démonstration.
# cat sed-test.txt
1 Unix unix unix 23
2 linux Linux 34
3 linuxunix UnixLinux
linux /bin/bash CentOS Linux OS
Linux is free and opensource operating system

1) Comment trouver et remplacer la "première" correspondance de motif dans chaque ligne

La commande sed ci-dessous remplace unix dans le fichier par Linux. Cela ne modifie que la première instance du modèle de chaque ligne.

# sed 's/unix/linux/' sed-test.txt
1 Unix linux unix 23
2 linux Linux 34
3 linuxlinux UnixLinux
linux /bin/bash CentOS Linux OS
Linux is free and opensource operating system

2) Comment trouver et remplacer la "Nième" occurrence du motif dans chaque ligne

Utilisez /1, /2.../n et d'autres signes dans la ligne pour remplacer la correspondance correspondante. La commande sed suivante remplace la deuxième instance du mode Unix par Linux sur une ligne.

# sed 's/unix/linux/2' sed-test.txt
1 Unix unix linux 23
2 linux Linux 34
3 linuxunix UnixLinux
linux /bin/bash CentOS Linux OS
Linux is free and opensource operating system

3) Comment rechercher et remplacer toutes les instances de pattern dans chaque ligne

La commande sed ci-dessous remplace toutes les instances du format Unix par Linux puisque g est un indicateur de remplacement global.

# sed 's/unix/linux/g' sed-test.txt
1 Unix linux linux 23
2 linux Linux 34
3 linuxlinux UnixLinux
linux /bin/bash CentOS Linux OS
Linux is free and opensource operating system

4) Comment rechercher et remplacer toutes les instances correspondantes d'un modèle à partir du "Nième" dans une ligne

La commande sed ci-dessous remplace toutes les instances correspondantes à partir du "Nième" du modèle dans un doubler.

# sed 's/unix/linux/2g' sed-test.txt
1 Unix unix linux 23
2 linux Linux 34
3 linuxunix UnixLinux
linux /bin/bash CentOS Linux OS
Linux is free and opensource operating system
Recommandations associées : "

Tutoriel vidéo Linux

"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn