Comment remplacer plusieurs lignes à l'aide de la commande 'SED'

Comment remplacer plusieurs lignes à l'aide de la commande 'SED'
Parfois, il faut remplacer plusieurs lignes d'un fichier par un caractère ou un texte particulier. Différentes commandes existent dans Linux pour remplacer plusieurs lignes d'un fichier. La commande 'SED' est l'une d'entre elles pour faire ce type de tâche. La forme complète de «SED» est l'éditeur de vapeur, et il est principalement utilisé pour lire et convertir le texte de différentes manières en utilisant une expression régulière. Comment cette commande peut être utilisée pour remplacer les multiples lignes d'un fichier de différentes manières est expliquée dans ce tutoriel.

Feuille de triche «SED» couramment utilisée:

Les caractères les plus couramment utilisés dans la commande «SED» sont expliqués dans le tableau suivant.

Personnage But
un Il est utilisé pour ajouter du contenu.
b Il est utilisé pour la branche de contenu.
c Il est utilisé pour changer le contenu.
d Il est utilisé pour supprimer une ligne d'un fichier.
D Il est utilisé pour supprimer la première ligne d'un fichier.
g Il était utilisé pour copier à partir du texte de maintien.
g Il est utilisé pour ajouter à partir du texte de maintien.
H Il est utilisé pour copier dans le texte de maintien.
H Il est utilisé pour ajouter au texte de maintien.
je Il est utilisé pour l'insertion.
je Il est utilisé pour imprimer la ligne de substitut.
n Il est utilisé pour aller à la ligne suivante.
N Il est utilisé pour ajouter la prochaine ligne d'entrée.
p Il est utilisé pour imprimer.
P Il est utilisé pour imprimer la première ligne.
q Il est utilisé pour arrêter.
Q Il est utilisé pour arrêter immédiatement.
r Il est utilisé pour lire le fichier.
R Il est utilisé pour lire la ligne à partir du fichier.
s Il est utilisé pour remplacer.
t Il est utilisé pour tester la substitution.
T Il est utilisé pour tester sans substitution.
w Il est utilisé pour écrire dans le fichier.
W Il est utilisé pour écrire une ligne dans le fichier.
X Il est utilisé pour échanger des modèles et maintenir.
y Il est utilisé pour traduire.
z Il est utilisé pour effacer la ligne.
'=' Il est utilisé pour imprimer le numéro de ligne.

Remplacez plusieurs lignes en utilisant la commande 'SED' à partir du terminal:

Comment la commande «SED» peut être utilisée pour remplacer les multiples lignes d'un fichier à partir du terminal est affichée dans cette partie de ce tutoriel. Créer un fichier nommé sed.SMS avec le contenu suivant Tester les commandes de cette partie.

sed.SMS

La forme complète de SED est «éditeur de flux».

C'est un utilitaire UNIX qui est utilisé pour lire et convertir le texte dans un format différent.

Il a été développé par Lee E. McMahon.

Il est utilisé pour le traitement de texte.

Il prend en charge les expressions régulières.

Exemple-1: remplacer deux lignes consécutives

La commande «SED» suivante remplacera deux lignes consécutives par une autre ligne. Ici, l'option -Z est utilisée pour remplacer les lignes consécutives par des données nulles avant d'ajouter le texte de remplacement. Selon la commande, le 3rd et 4e Les lignes du fichier seront remplacées par le texte, 'C'est un outil très utile'.

$ Cat Sed.SMS
$ sed -z 's / il a été développé par Lee E. McMahon.\ nit est utilisé pour le texte
traitement./ C'est un outil très utile./ 'sed.SMS

La sortie suivante apparaîtra après l'exécution des commandes.

Exemple-2: Remplacez plusieurs lignes en fonction de la correspondance et du drapeau global

La commande «SED» suivante remplacera toutes les lignes qui commencent par le mot, 'Il' par le mot, 'Cette ligne est remplacée '.

$ Cat Sed.SMS
$ sed 's / ^ it.* / Cette ligne est remplacée / g 'sed.SMS

La sortie suivante apparaîtra après l'exécution des commandes. Trois lignes contiennent le mot 'Il' dans le fichier. Ainsi, ces lignes ont été remplacées par le texte de remplacement.

Exemple-3: Remplacez plusieurs lignes basées sur la commande Match et Next-Line

La commande «SED» suivante remplacera le mot, 'est«Par le mot»,était'avec la commande de ligne suivante,' n '.

$ Cat Sed.SMS
$ sed 'n; / is / s / is / was /' sed.SMS

La sortie suivante apparaîtra après l'exécution des commandes. Ici, 'est' existe dans le 2nd et 4e lignes du fichier, et ces lignes sont modifiées par le mot 'était'.

Remplacez plusieurs lignes en créant le fichier de script 'SED':

Dans les exemples précédents, les commandes «SED» ont été exécutées à partir du terminal. Mais c'est une langue de script, et si le script contient plusieurs instructions, alors il est préférable de créer un fichier SED avec le script. Créer un fichier texte nommé étudiants.SMS avec le contenu suivant dans lequel le script «SED» sera appliqué.

étudiants.SMS

ID: 111045
Nom: Robert
Département: CSE
Lot: 35
ID: 111876
Nom: Joseph
Département: BBA
Lot: 27
ID: 111346
Nom: William
Département: CSE
Lot: 45
ID: 111654
Nom: Charles
Département: EEE
Lot: 41
ID: 111346
Nom: John
Département: CSE
Lot: 25
ID: 111746
Nom: Thomas
Département: CSE
Lot: 15

Exemple-4: Remplacez plusieurs lignes d'un fichier à l'aide du fichier de script 'SED'

Créer un fichier SED nommé pour remplacer.sed avec le contenu suivant pour remplacer les multiples lignes en fonction du modèle de recherche. Ici, le mot 'CSE'sera recherché dans le fichier texte, et si le match existe, il recherchera à nouveau les numéro 35 et 15. Si le deuxième match existe dans le fichier, il sera remplacé par le numéro 45.

remplacer.sed

/ Cse /
p; n;
/ 35 /
S / 35/45 /;
p; d;

/ 15 /
S / 15/55 /;
p; d;


P;

Exécutez la commande suivante pour vérifier le contenu existant du fichier. «CSE» est apparu quatre fois dans le fichier texte. 35 et 15 existent à deux endroits.

$ étudiants chat.SMS

La commande suivante remplacera le contenu des multiples lignes en fonction du script SED.

$ sed -n -f remplacer.étudiants SED.SMS

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

Conclusion

Différentes façons de remplacer plusieurs lignes ou le contenu des multiples lignes à l'aide de la commande «SED» ont été affichées dans ce tutoriel. Comment le script «SED» peut être exécuté à partir d'un fichier SED est également affiché dans ce tutoriel. J'espère que ce tutoriel aidera le lecteur à remplacer plusieurs lignes de n'importe quel fichier en utilisant la commande «SED».