Comment insérer une ligne après le match en utilisant «SED»?

Comment insérer une ligne après le match en utilisant «SED»?

L'une des commandes utiles et puissantes de Linux est la commande «SED». Cette commande est utilisée pour effectuer différents types de tâches dans Linux, telles que l'insertion, la mise à jour et supprimer un texte ou une ligne particulière en fonction du match. Vous pouvez insérer un texte dans une chaîne ou un fichier de différentes manières en utilisant la commande «SED».

Comment insérer une ligne après avoir trouvé une correspondance dans une chaîne ou une ligne est affichée dans ce tutoriel.

Insérez une ligne dans la chaîne

Une nouvelle ligne peut être insérée après n'importe quelle valeur de chaîne en utilisant la commande «SED» si le modèle défini dans la commande correspond à n'importe quelle partie de la valeur de chaîne.

L'exemple suivant montre comment une nouvelle ligne peut être ajoutée après une valeur de chaîne si une chaîne particulière existe n'importe où dans la valeur de la chaîne.

Exemple-1: insérez une ligne dans une chaîne après avoir trouvé une correspondance

La commande suivante recherchera «inng» dans la chaîne, «j'aime la programmation» et une ligne de texte, «aimez-vous la programmation?»Sera inséré après la chaîne si la chaîne de recherche existe.

Ici, le caractère «&» est utilisé pour insérer la ligne après la chaîne.

$ echo "J'aime la programmation."| SED 'S / ing / & aimez-vous la programmation?/ '

La sortie suivante montre que «inng» n'existe pas dans la chaîne et aucune ligne n'est insérée après la chaîne.


La commande suivante recherchera «ing.«Dans la chaîne,« j'aime la programmation »et il existe dans la chaîne.

$ echo "J'aime la programmation."| SED./ & Aimez-vous la programmation?/ '

La sortie suivante montre que la nouvelle ligne est ajoutée après la chaîne.

Insérer une ligne dans un fichier

Il y a deux façons d'insérer une ligne après une correspondance dans un fichier mentionné ci-dessous. Lorsque la commande «SED» est utilisée sans l'option «-i», le contenu du fichier restera inchangé et la sortie affichera le contenu du fichier avec la nouvelle ligne insérée. Vous devez utiliser l'option «-i» avec la commande «SED» pour insérer la nouvelle ligne en permanence dans le fichier si le modèle de correspondance existe dans le fichier.

UN. Utilisation de «A» dans la commande «SED»

Le «A» peut être utilisé dans le modèle de recherche du «SED» pour ajouter une ou plusieurs lignes dans un fichier après la ligne où le modèle de recherche correspond ou après un numéro de ligne particulier.

B. Utilisation de «I» dans la commande «SED»

Le «i» peut être utilisé dans le modèle de recherche de la commande «SED» pour insérer une ou plusieurs lignes dans un fichier avant la ligne où le modèle de recherche correspond.

Insérer des lignes dans un fichier basé sur le modèle:

Créer un fichier texte délimité par l'onglet nommé des produits.SMS avec le contenu suivant pour afficher les utilisations du drapeau ci-dessus dans la commande «SED».

des produits.SMS

Nom d'identité
01 Crème Whip
02 poudre de cacao
03 sucre
04 œuf
05 farine

Exemple-2: insérer une ligne après un numéro de ligne particulier à l'aide du «A»

Les commandes suivantes montrent comment une nouvelle ligne peut être ajoutée, après un numéro de ligne particulier de produits.Fichier TXT, basé sur le modèle utilisé dans la commande «SED».

Ici, la première commande affichera le contenu existant du fichier. La commande «SED» ajoutera le texte, «B01 Baking Sugh», après les deux premières lignes du fichier. La dernière commande est utilisée pour vérifier que le contenu du fichier est modifié ou non.

$ Products Cat.SMS
$ sed '2 a b01 \ tbaking chiking' Products.SMS
$ Products Cat.SMS

La sortie suivante apparaîtra après avoir exécuté la commande ci-dessus.

Exemple-3: insérez une ligne après la dernière ligne à l'aide du «A»

La commande suivante montre la voie à ajouter une nouvelle ligne après la dernière ligne du fichier. La première et dernière commande affiche le contenu existant du fichier avant et après l'exécution de la commande «SED». Le symbole «$» est utilisé dans le modèle de la commande «SED» pour mentionner la dernière ligne du fichier.

$ Products Cat.SMS
$ sed '$ a b01 \ tbaking chiking' Products.SMS
$ Products Cat.SMS

La sortie suivante apparaîtra après avoir exécuté la commande ci-dessus.

Exemple-4: insérez une ligne n'importe où dans le fichier après avoir correspondu à un modèle à l'aide du «A»

La commande «SED» suivante montre comment une nouvelle ligne peut être ajoutée n'importe où dans le fichier en fonction du modèle de correspondance. Le modèle utilisé dans la commande «SED» recherchera n'importe quelle ligne à partir de «S01» et ajoutera la nouvelle chaîne après elle. La quatrième ligne du fichier commence par «S01», et la nouvelle ligne sera insérée après cette ligne.

$ Products Cat.SMS
$ sed '/ ^ s01.* / A B01 \ TBAKING STOWS 'Products.SMS
$ Products Cat.SMS

La sortie suivante apparaîtra après l'exécution de la commande.


La commande «SED» suivante recherchera toute ligne qui se termine par «poudre» et insérera la nouvelle ligne après elle. La troisième ligne du fichier se termine par «poudre». Ainsi, la nouvelle ligne sera insérée après cette ligne.

$ Products Cat.SMS
$ sed '/ poudre $ / a b01 \ tbaking poudre' produits.SMS
$ Products Cat.SMS

La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus.

Exemple-5: insérez plusieurs lignes après le modèle de correspondance à l'aide de «A»

La commande "SED" suivante montre la façon d'ajouter plusieurs lignes à l'intérieur du contenu d'un fichier basé sur le modèle de correspondance.

Ici, deux lignes seront ajoutées après la troisième ligne, selon le modèle.

$ Products Cat.SMS
$ sed '/ ^ [a-c] / a b01 \ tbaking poudre \ nb02 \ tbaking soda' produits.SMS
$ Products Cat.SMS

La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus.

Exemple-6: insérer une ligne après avoir correspondu à un motif en utilisant le «i»

$ Products Cat.SMS
$ sed '/ crème / i B01 \ TBAKING STOWS' Products.SMS
$ Products Cat.SMS

La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus.

Exemple-7: insérer une ligne en permanence après le modèle de correspondance à l'aide de l'option «-i»

La commande «SED» suivante montre comment modifier le contenu du fichier de façon permanente. L'option «I» est utilisée avec la commande «SED» pour insérer une nouvelle ligne dans le fichier en fonction du modèle.

$ Products Cat.SMS
$ sed -i '/ e $ / a g01 \ tghee' Products.SMS
$ Products Cat.SMS

La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus.

Conclusion:

Les façons d'insérer deux ou plusieurs lignes dans un fichier en utilisant la commande «SED» avec un modèle ont été montrées dans ce tutoriel pour aider le lecteur à appliquer cette commande pour insérer des lignes dans le motif temporairement ou définitivement en fonction du modèle.