Linux (éditeur de texte sed)

sed

Semblable à vim, c'est un éditeur de texte, mais sed est édité et traité par ligne

Fonction principale : ajouter, supprimer, modifier et vérifier le contenu du texte, la plus puissante étant l'opération de modification

Remarque : les expressions régulières peuvent être prises en charge, et les expressions régulières étendues peuvent également être prises en charge, mais les expressions régulières ne sont pas entièrement fiables.

Comment fonctionne sed

Comprenant trois processus : lecture-exécution-affichage

Lire : Après avoir lu le contenu du texte, le contenu lu sera stocké dans un tampon temporaire (espace de motif)

Exécution : dans l'espace de modèle, exécutez ligne par ligne en fonction du contenu du texte lu et parcourez toutes les lignes sauf si le numéro de ligne est spécifié. Exécutez séquentiellement, de haut en bas.

Affichage : une fois l'exécution terminée, imprimez le résultat de l'exécution. Si la modification doit prendre effet, le contenu modifié de l'espace de modèle sera écrit dans le fichier spécifié. Si seulement l'opération, mais

En fin de compte, le fichier ne sera pas écrit et seul le résultat sera affiché. Une fois l'affichage terminé, les données dans l'espace de motif seront immédiatement supprimées.

format sed et options communes

        sed -e 'opérateur' fichier1 -e 'opérateur' fichier2

        N'ajoutez pas -e lorsque vous travaillez uniquement sur un seul fichier

Options courantes :

-e : option d'action conditionnelle

-f : Spécifie le fichier de script pour traiter le contenu du fichier d'entrée. Écrivez les commandes dans le script et utilisez les commandes du script pour traiter le contenu du deuxième fichier.

-i : À utiliser immédiatement avec prudence ! !

-n : affiche le résultat après le traitement du script (la sortie par défaut de sed est interdite)

Opérateur : il faut utiliser des guillemets simples '' 

s : remplace le caractère spécifié

d : supprimer, supprimer la ligne spécifiée

a : augmenter, insérer le contenu spécifié sous la ligne actuelle

i : augmenter, insérer le contenu spécifié au-dessus de la ligne spécifiée

c : remplacer, remplacer toute la ligne

y : remplacer, remplacer des caractères, mais la longueur des caractères avant et après le remplacement doit être la même.

p : print (sed a une sortie par défaut)

r : utiliser la régularisation étendue

Le fonctionnement de sed

fonction de vérification sed

sed imprime la ligne spécifiée, adressant les impressions

sed -n '4p' filename # imprimer la quatrième ligne

sed -n '$p' filename #imprimer directement la dernière ligne

Méthode 2 : imprimer l'intervalle de plage du numéro de ligne

sed -n '1,3p' filename #imprimer la première ligne sur la troisième ligne

sed -n '2,$p' filename # affiche la deuxième ligne jusqu'à la dernière ligne

sed -n '2p;$p' filename : affiche la deuxième ligne jusqu'à la dernière ligne

La plage de numéros de ligne s'imprime : , à ; et

Imprimez les lignes paires et impaires :

sed -n 'n;p' nom de fichier (n doit sauter la première ligne et n doit sauter la deuxième ligne)

Mode de filtre de texte :

Premièrement : imprimez le contenu contenant la chaîne spécifiée :

sed -n '/o/p' nom de fichier

sed -n '/big/p' nom du fichier #Toutes les lignes contenant big seront imprimées

Appliquez une expression régulière de base pour imprimer :

sed -n '/^root/p' /etc/passwd #imprimer la ligne commençant par root

sed -n '/bash$/p' /etc/passwd #imprimer la ligne se terminant par bash


 

sed supprimer

Précisez le numéro de ligne à supprimer :

sed -n '3d;p'filename#Supprimez le contenu de la troisième ligne et imprimez le contenu restant.

sed -n '1d;3d;p' file name #Supprimez le contenu des première et troisième lignes et imprimez le contenu restant.

sed -n '1d, 3d;p' file name #Supprimez le contenu de la première ligne à la troisième ligne et imprimez le contenu restant.

(, signifie à; signifie et)

sed '/big/d' nom de fichier # correspond au contenu de la chaîne (big) à supprimer

sed '/o/! d' nom de fichier # correspond au contenu de la chaîne (o), supprime tout sauf o

Utilisez des expressions régulières pour supprimer :

sed '/^$/d' nom de fichier #supprimer les lignes vides

Remplacement de sed (souligné !!)

s Chaîne de remplacement :

sed -n 's/root/test/p' /etc/passwd #Remplacez la première racine de la ligne actuelle par test

sed -n 's/root/test/gp' /etc/passwd #Remplacez toutes les racines de la ligne actuelle par test

Casse des caractères alphabétiques pour la substitution :

l& : un symbole spécial converti en minuscules et un caractère d'échappement est requis lors de sa nouvelle utilisation.

u& : symbole spécial converti en taille, lorsqu'il est utilisé, un caractère d'échappement est requis

g : remplacez tout, s'il n'est pas ajouté, remplacez uniquement la première lettre

sed 's/[az]/\u&/' 123.txt

c pour remplacer toute la ligne :

sed '/ligne à remplacer/c contenu à remplacer' nom du fichier

y remplacement d'un seul caractère :

sed 'y/'

L'ajout de sed

a Ajouter sur la ligne suivante : sed '/ligne spécifiée/un contenu ajouté' nom de fichier

i Ajouter sur la ligne précédente : sed '/ligne spécifiée/j'ai ajouté du contenu' nom du fichier

r lit le contenu du fichier spécifié au numéro de ligne (ajouter après la ligne) :

sed '/Sous la ligne actuelle du fichier d'origine/r Le fichier pour lire le contenu' spécifie le fichier pour l'opération

Afficher les journaux dans un délai spécifié :

sed -n '/20 juillet 18:36:12/,/20 juillet 18:50:01/p' /var/log/messages 

questions d'entretien

1. Que dois-je faire si le fichier est trop volumineux ?

Méthode 1 : split -l coupé par ligne à traiter (convient aux fichiers volumineux)

Méthode 2 : nom de fichier cat | traitement sed (pour les fichiers de taille moyenne)

2. Comment supprimer le contenu du fichier sans entrer dans le fichier (c'est-à-dire supprimer sans interaction)

Méthode 1 : sed -i 'd' nom de fichier

Méthode 2 : cat /dev/null > nom du fichier

Je suppose que tu aimes

Origine blog.csdn.net/ZZZ_CCC01/article/details/131941549
conseillé
Classement