Galerie de cartes mentales Raccourci de la commande Sed
Il s'agit d'une carte mentale sur le raccourci des commandes Sed, comprenant l'introduction et la syntaxe, les options, les commandes, les jeux de métacaractères, etc. J'espère qu'elle vous sera utile !
Modifié à 2023-11-23 12:09:46Raccourci de la commande Sed
Introduction et grammaire
Description : Éditeur de flux - Éditeur de flux, effectue le filtrage du texte et la sortie de remplacement formatée ; sed dispose de deux espaces de stockage intégrés : 1). L'espace de motif est effacé après l'exécution de la commande. 2).L'espace d'attente ne sera pas effacé par défaut
Format de commande : sed [options] -f fichiers de fichier de script #Prise en charge de plusieurs fichiers sed [options] '[plage d'adresses|plage de modèles] s#{chaîne remplacée}#{chaîne remplacée}#{drapeau de remplacement}' [fichier d'entrée]
Expressions multiples : sed 'expression' | sed 'expression' #Équivalent à l'instruction sed suivante sed 'expression; expression'
choix
-i : modifiez directement le contenu du fichier à partir duquel les données sont lues, au lieu de les afficher depuis l'écran (ajoutez-le directement au fichier source ou sauvegardez-le).
-r : prend en charge les expressions étendues. Il n'est pas nécessaire d'utiliser \() pour escape() dans sed.
-f <script file> ou --file=<script file> : #Traitez le fichier texte d'entrée avec le fichier script spécifié dans l'option
-n ou --quiet ou --silent : #Annule la sortie par défaut, affiche les résultats uniquement après le traitement du script et les affiche à l'écran ;
-e <script> ou --expression=<script> : #Utilisez le script spécifié dans l'option pour traiter le fichier texte d'entrée et exécuter plusieurs commandes sed.
commande[commande]
Ajouter une opération
a Ajouter du texte à la ligne suivante de la ligne actuelle j'insère du texte sur la ligne actuelle
Opération de suppression
d supprimer les lignes sélectionnées D Supprimer la première ligne du bloc modèle
Changer d'opération
s remplace le caractère spécifié. Habituellement utilisé avec des expressions régulières, le délimiteur peut être personnalisé c Remplace la ligne sélectionnée par un nouveau texte
Vérifier le fonctionnement
n lire la ligne d'entrée suivante et traiter la nouvelle ligne avec la commande suivante au lieu de la première commande N Ajoute la ligne d'entrée suivante après le bloc modèle et intègre une nouvelle ligne entre elles, modifiant ainsi le numéro de ligne actuel.
p imprime les lignes du bloc modèle
Fichier enregistré et lu
w fichier écrit et ajoute le bloc modèle à la fin du fichier Le fichier W écrit et ajoute la première ligne du bloc modèle à la fin du fichier.
r fichier lit les lignes du fichier
Numéro de ligne et acquisition inversée
= imprimer le numéro de ligne actuel
! Indique que les commandes suivantes prendront effet sur toutes les lignes non sélectionnées.
drapeau de remplacement
Déterminer quel caractère commencer le traitement, 1-512 marque numérique
j'ignore le cas de remplacement/correspondance/trouver
g signifie remplacement complet dans la ligne
p signifie ligne d'impression, souvent utilisé avec -n
Conversion de casse : \l \L \u \U c'est-à-dire inférieur/supérieur
y : convertit la chaîne correspondante en majuscules et minuscules, que g soit ajouté ou non.
e exécuter l'indicateur de commande, exécuter n'importe quel contenu dans l'espace de modèle en tant que commande bash (notez les espaces)
Utilisations de correspondance régulières : \1 balise de correspondance de sous-chaîne et balise de chaîne correspondante
w signifie écrire des lignes dans un fichier. x signifie échanger le texte du bloc modèle avec le texte du tampon.
jeu de métacaractères
Remarque : sed n'a pas de métacaractères \d \w représentant des chiffres et des lettres, uniquement les métacaractères suivants
^ correspond au début d'une ligne, tel que : /^sed/ correspond à toutes les lignes commençant par sed. $ correspond à la fin de la ligne, par exemple : /sed$/ correspond à toutes les lignes se terminant par sed. . Correspond à tout caractère qui n'est pas un caractère de nouvelle ligne, tel que : /s.d/ correspond à s suivi de n'importe quel caractère, et enfin d. * Correspond à 0 ou plusieurs caractères, tels que : /*sed/ Correspond à toutes les lignes dont le modèle est constitué d'un ou plusieurs espaces suivis de sed. [] correspond aux caractères dans une plage spécifiée, telle que /[ss]ed/ correspond à sed et Sed. [^] correspond à un caractère qui n'est pas dans la plage spécifiée, tel que : /[^A-RT-Z]ed/ correspond à une ligne commençant par une lettre qui ne contient pas A-R et T-Z, suivie de ed. \(..\) correspond aux sous-chaînes et enregistre les caractères correspondants, tels que s/\(love\)able/\1rs, loveable est remplacé par lovers. & enregistre les caractères recherchés pour remplacer d'autres caractères, tels que s/love/**&**/, l'amour devient **love**. \< correspond au début d'un mot, tel que :/\<love/ correspond aux lignes contenant des mots commençant par love. \> Correspond à la fin d'un mot, tel que /love\>/ Correspond aux lignes contenant des mots se terminant par love. x\{m\} répète le caractère x, m fois, tel que : /0\{5\}/ correspond aux lignes contenant 5 zéros. x\{m,\} répète le caractère x au moins m fois, par exemple : /0\{5,\}/ correspond aux lignes avec au moins 5 zéros. x\{m,n\} répète le caractère
Exemple classique
Supprimer la commande d
sed -ri '3d' file //Supprimer la troisième ligne du fichier file
sed -ri '/root/d' file //Supprimer les lignes contenant la racine correspondant à l'expression régulière
sed -ri '/root/,5d' file // Supprime le contenu à partir de la ligne correspondante normale contenant la racine jusqu'à la ligne 5
sed -ri '/root/, 5d' file //Supprimez le contenu à partir de la ligne contenant la racine correspondant à l'expression régulière et ajoutez 5 lignes
sed -ri '/root/,!d' file //Supprimer les lignes autres que la ligne contenant la racine correspondant à l'expression régulière
Remplacer les commandes
sed -ri 's/root/alice/' passwd //Remplacez la première racine du fichier passwd par alice
sed -ri 's/root/alice/g' passwd //Remplacez toutes les racines du fichier passwd par alice
Lire la commande de fichier r
sed -r '/root/r /etc/hosts' passwd //Après avoir fait correspondre la chaîne racine dans le fichier passwd, lisez le fichier /etc/hosts
Commande d'écriture de fichier w
Ajouter la commande
Ajoute une ligne a après la ligne spécifiée
sed -r '2a je t'aime' passwd //Insérer une ligne je t'aime après la deuxième ligne du fichier passwd
Insérer une ligne i avant la ligne spécifiée
sed -r '2i i love you' passwd //Insérer une ligne je t'aime avant la deuxième ligne du fichier passwd
Modifier la commande c
sed -r '3c\J'aime ça ! ' passwd //Remplacez la troisième ligne par I like this !
sed -r '/daemon:/c\J'aime ça ! ' passwd //Trouvez la ligne correspondante normale et remplacez-la par J'aime ça !
Obtenez la commande suivante n
Annulez l’option !
Connaissances supplémentaires
l (l minuscule) imprime et affiche les caractères spéciaux (fin de ligne et marque de tabulation)
Symboles spéciaux {} Les commandes entourées de {} sont exécutées dans l'ordre et les commandes précédentes affecteront les commandes suivantes.
script sed
Une expression sed par ligne