Comment remplacer tout après le modèle en utilisant la commande «SED»

Comment remplacer tout après le modèle en utilisant la commande «SED»

Les tâches de remplacement peuvent être effectuées dans Linux de différentes manières. La commande 'SED' est l'une des façons de faire la tâche de remplacement. Cette commande peut être utilisée pour remplacer le texte dans une chaîne ou un fichier en utilisant un modèle différent. Comment vous pouvez tout remplacer après le modèle de correspondance à l'aide de la commande «SED» est affiché dans ce tutoriel.

Remplacez tout après le match dans une chaîne:

Comment la partie d'une chaîne peut être remplacée en fonction d'un modèle de correspondance et $ partition_column a été affichée dans cette section de ce tutoriel. Mais cette variable fonctionne si le modèle correspond à un mot au début ou au milieu de la chaîne. Il ne remplacera pas le texte si le modèle correspond par le dernier mot de la chaîne.

Exemple-1: Remplacez tout après le match en utilisant $ partition_column

La commande suivante recherchera le personnage «A», et la partie restante après «A» sera remplacée par le texte, «un site de blog populaire». $ Partition_column.* est utilisé pour définir la partie restante après le personnage, «A».

$ echo "Linuxhint est un site Web" | sed "s / a $ partition_column.* / un site de blog populaire / "

La sortie suivante apparaîtra après l'exécution de la commande. Ici, «un site Web» a été remplacé par «un site de blog populaire».


Le modèle suivant recherchera le mot 'la toile'Dans la chaîne et remplacer la partie restante par le'la toile«Par le texte»,Un site de blog populaire"Si le match existe et"la toile'n'est pas la partie du dernier mot de la chaîne.

$ echo "Linuxhint est un site Web" | SED "S / Web.* $ Partition_column.* / un site de blog populaire / "

La sortie suivante apparaîtra après l'exécution de la commande. Ici, le «site Web» est le dernier mot de la chaîne, et aucun remplacement n'a été effectué pour cette raison.

Exemple-2: Remplacez tout après la correspondance en utilisant le modèle

La commande suivante recherchera le mot 'frapper'Globalement dans la chaîne et remplacez tout par le mot si le mot existe dans la chaîne. 'g'est utilisé ici pour la recherche globale.

$ echo "j'aime la programmation bash" | SED "S / BASH.* / python script / g "

La sortie suivante apparaîtra après l'exécution de la commande. Ici, «bash» existe au milieu de la chaîne, et le remplacement a été effectué.

Remplacez tout après la correspondance dans un fichier:

Tout le contenu d'une ligne particulière ou de plusieurs lignes ou des lignes restantes d'un fichier après la correspondance peut être remplacée à l'aide du 'sed' commande. Créer un fichier texte nommé présence.SMS avec le contenu suivant pour tester les exemples indiqués dans cette section.

présence.SMS

1108885 est présent
1999979 est présent
1769994 est absent
1105656 est absent
1455999 est absent

Exemple -3: Remplacez tout le contenu d'une ligne d'un fichier après la correspondance

La commande «SED» suivante recherchera le numéro 1769994 dans le fichier, et tout avec le numéro sera remplacé par le texte, «1586844 est présent« Si le nombre existe dans n'importe quelle ligne du fichier.

$ Cat Allendence.SMS
$ sed "S / 1769994.* / 1586844 est présent / "présence.SMS

La sortie suivante apparaîtra exécuter les commandes. Ici, le numéro de recherche existe dans la troisième ligne du fichier, et le remplacement a été effectué.

Exemple -4: Remplacez tout le contenu des multiples lignes d'un fichier après la correspondance

La commande 'SED' suivante affiche l'utilisation de la variable $ partition_column pour remplacer plusieurs lignes du fichier. La commande recherchera «110» au début de chaque ligne du fichier et remplacera tout par «110» par le texte «entrée invalide» où le texte correspondant sera trouvé.

$ présence de chat.SMS
$ sed "s / ^ 110.* $ Partition_column.* / Entrée non valide / "Précédent.SMS

La sortie suivante apparaîtra après l'exécution des commandes. «110» existe en deux lignes du fichier, et celles-ci ont été remplacées par le texte de remplacement.

Exemple-5: Remplacez tout le contenu d'une ligne d'un fichier en utilisant «C» après la correspondance

Ce qui suit 'sed'La commande montre l'utilisation de'c'Pour tout remplacer après le match. Ici, 'c'Indique le changement. La commande recherchera le mot 'cadeau"Dans le fichier et remplacer tout de la ligne par le texte"Cette ligne est remplacée'Si le mot existe dans n'importe quelle ligne du fichier.

$ présence de chat.SMS
$ sed '/ présent / c Cette ligne est remplacée'.SMS

La sortie suivante apparaîtra après l'exécution des commandes. Le mot «présent» existe dans les deux premières lignes du fichier, et ces deux lignes ont été remplacées par le texte de remplacement.

Exemple-6: Remplacez tout le contenu d'une ligne d'un fichier basé sur le modèle de démarrage et de fin

Parfois, il est nécessaire de remplacer le texte en fonction du modèle de démarrage et de fin. La commande «SED» suivante montre la voie à définir les modèles de démarrage et de fin pour remplacer les lignes d'un fichier. La commande recherchera ces lignes dans le fichier qui commence par le numéro 110 et se termine par le mot «absent» et remplacera tout par le mot «remplacé» où les modèles correspondent.

$ présence de chat.SMS
$ sed -e 's / ^ 110.* Absence $ / remplacé / g '.SMS

La sortie suivante apparaîtra après l'exécution des commandes. Ici, les premières et quatrième lignes commencent par le numéro 110, mais le mot «absent» existe uniquement dans la quatrième ligne. Ainsi, la quatrième ligne du fichier a été remplacée par le texte de remplacement.

Conclusion:

La commande 'SED' est un outil très puissant de Linux pour effectuer différents types de tâches liées au traitement de texte. La tâche de remplacement basée sur le modèle d'appariement est discutée dans ce tutoriel en utilisant différents types de modèles dans la commande «SED». $ Partition_column, 'c' et '.* 'est utilisé dans ce tutoriel pour remplacer tout une ligne du fichier où le modèle de correspondance existe. Les utilisations de certains caractères de la définition des modèles ont montré ici, comme '^' et '$'. De nombreux autres personnages existent pour définir le modèle en expression régulière à des fins de recherche. J'espère que ce tutoriel aidera le lecteur à connaître les bases de tout remplacer à partir d'un fichier après le match.