sed

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 sous Linux pour remplacer plusieurs lignes d'un fichier. La commande 'sed' est l'une d'entre elles pour effectuer ce type de tâche. La forme complète de 'sed' est Steam Editor, 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.

Aide-mémoire « sed » couramment utilisé :

Les caractères les plus couramment utilisés dans la commande 'sed' sont expliqués dans le tableau suivant.

Personnage Objectif
une Il est utilisé pour ajouter du contenu.
b Il est utilisé pour ramifier le contenu.
c Il est utilisé pour modifier le contenu.
Il est utilisé pour supprimer une ligne d'un fichier.
Il est utilisé pour supprimer la première ligne d'un fichier.
g Il avait l'habitude de copier à partir du texte d'attente.
g Il est utilisé pour ajouter du texte d'attente.
h Il est utilisé pour copier dans le texte d'attente.
H Il est utilisé pour ajouter au texte d'attente.
je Il est utilisé pour l'insertion.
je Il est utilisé pour imprimer la ligne de substitution.
m Il est utilisé pour passer à la ligne suivante.
N Il est utilisé pour ajouter la ligne d'entrée suivante.
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 sert à lire le fichier.
R Il est utilisé pour lire la ligne du fichier.
s Il est utilisé pour remplacer.
t Il est utilisé pour tester la substitution.
T Il est utilisé pour tester l'absence de 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 motifs et maintenir.
oui 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 à l'aide de la commande 'sed' du terminal :

Comment la commande 'sed' peut être utilisée pour remplacer les multiples lignes d'un fichier du terminal est montré dans cette partie de ce tutoriel. Créer un fichier nommé sed.SMS avec le contenu suivant testez 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 le commandement, les 3rd et 4e les lignes du fichier seront remplacées par le texte, "C'est un outil très utile".

$ chat sed.SMS
$ sed -z 's/Il a été développé par Lee E. McMahon.\nIl est utilisé pour le texte
En traitement./C'est un outil très utile./' sed.SMS

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

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

La commande 'sed' suivante remplacera toutes les lignes commençant par le mot, 'Il' par le mot, 'Cette ligne est remplacée '.

$ chat sed.SMS
$ sed 's/^Il.*/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. Donc, ces lignes ont été remplacées par le texte de remplacement.

Exemple-3 : Remplacer plusieurs lignes en fonction de la correspondance et de la commande de la ligne suivante

La commande 'sed' suivante remplacera le mot,'est' par le mot 'a été' avec la commande de ligne suivante, 'n'.

$ chat sed.SMS
$ sed ' n;/est/ s/est/était/' sed.SMS

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

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 depuis le terminal. Mais c'est un langage de script, et si le script contient plusieurs instructions, alors il vaut mieux 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 : Guillaume
Département : CSE
Lot : 45
ID: 111654
Nom : Charles
Département : EEE
Lot : 41
ID: 111346
Nom : Jean
Département : CSE
Lot : 25
ID: 111746
Nom : Thomas
Département : CSE
Lot : 15

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

Créer un fichier sed nommé remplacer.sed avec le contenu suivant pour remplacer les lignes multiples en fonction du modèle de recherche. Ici, le mot 'CSE' sera recherché dans le fichier texte, et si la correspondance existe, il cherchera à nouveau les nombres 35 et 15. Si la deuxième correspondance existe dans le fichier, alors elle sera remplacée par le nombre 45.

remplacer.sed

/CSE/
p;n;
/35/
s/35/45/;
p;d;

/15/
art/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.

$ chat étudiants.SMS

La commande suivante remplacera le contenu des plusieurs lignes basées sur le script sed.

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

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

Conclusion

Différentes manières de remplacer plusieurs lignes ou le contenu de plusieurs lignes à l'aide de la commande 'sed' ont été présentées dans ce tutoriel. Comment le script 'sed' peut être exécuté à partir d'un fichier sed est également montré 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'.

WinMouse vous permet de personnaliser et d'améliorer le mouvement du pointeur de la souris sur un PC Windows
Si vous souhaitez améliorer les fonctions par défaut de votre pointeur de souris, utilisez un logiciel gratuit WinMouse. Il ajoute plus de fonctionnal...
Le bouton de clic gauche de la souris ne fonctionne pas sous Windows 10
Si vous utilisez une souris dédiée avec votre ordinateur portable ou de bureau mais que le le clic gauche de la souris ne fonctionne pas sur Windows 1...
Le curseur saute ou se déplace de manière aléatoire lors de la saisie dans Windows 10
Si vous constatez que le curseur de votre souris saute ou se déplace tout seul, automatiquement, au hasard lors de la saisie sur un ordinateur portabl...