Maison > Article > Opération et maintenance > Comment remplacer des chaînes dans des fichiers sous Linux
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".
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.
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.
# 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 system1) 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
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 system3) 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
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 : "
"
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!