sed

Comment tout remplacer après le motif à l'aide de la commande 'sed'

Comment tout remplacer après le motif à l'aide de la commande 'sed'

Les tâches de remplacement peuvent être effectuées sous Linux de différentes manières. La commande 'sed' est l'un des moyens d'effectuer une tâche de remplacement. Cette commande peut être utilisée pour remplacer du texte dans une chaîne ou un fichier en utilisant un modèle différent. Comment vous pouvez tout remplacer après le motif correspondant à l'aide de la commande 'sed' est montré dans ce tutoriel.

Remplacez tout après la correspondance dans une chaîne :

Comment la partie d'une chaîne peut être remplacée en fonction d'un modèle correspondant et $PARTITION_COLUMN a été montré dans cette section de ce didacticiel. Mais cette variable fonctionne si le motif correspond à n'importe quel mot au début ou au milieu de la chaîne. Il ne remplacera pas le texte si le motif correspond au dernier mot de la chaîne.

Exemple-1 : Tout remplacer après la correspondance à l'aide de $PARTITION_COLUMN

La commande suivante recherchera le caractère « 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 caractère, '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 remplacez la partie restante par le 'la toile' par le texte, 'un site de blog populaire' si la correspondance 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, 'website' est le dernier mot de la chaîne, et aucun remplacement n'a été fait pour cette raison.

Exemple 2 : Tout remplacer 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.*/script python/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é fait.

Remplacez tout après le match dans un fichier :

Tout le contenu d'une ligne particulière ou de plusieurs lignes ou lignes restantes d'un fichier après la correspondance peut être remplacé à l'aide du 'sed' commande. Créer un fichier texte nommé présence.SMS avec le contenu suivant pour tester les exemples présenté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 : Remplacer 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 ce qui contient le numéro sera remplacé par le texte, '1586844 est présent' si le numéro existe dans n'importe quelle ligne du fichier.

$ chat allendance.SMS
$ sed "s/1769994.*/1586844 est présent/" présence.SMS

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

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

La commande 'sed' suivante montre 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é.

$ la présence du chat.SMS
$ sed "s/^110.* $PARTITION_COLUMN.*/Entrée invalide/" participation.SMS

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

Exemple-5 : Remplacer tout le contenu d'une ligne d'un fichier en utilisant 'c' après la correspondance

Ce qui suit 'sedLa 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 remplacez tout de la ligne par le texte, 'Cette ligne est remplacée' si le mot existe dans n'importe quelle ligne du fichier.

$ la présence du chat.SMS
$ sed '/présent/c Cette ligne est remplacée ' participation.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 : Remplacer tout le contenu d'une ligne d'un fichier en fonction du motif de début et de fin

Parfois, il est nécessaire de remplacer le texte en fonction du modèle de début et de fin. La commande 'sed' suivante montre comment définir des modèles de début et de fin pour remplacer les lignes d'un fichier. La commande recherchera les lignes du fichier commençant par le nombre 110 et se terminant par le mot « absent » et remplacera tout par le mot « remplacé » où les motifs correspondent.

$ la présence du chat.SMS
$ sed -e 's/^110.*absent$/remplacé/g' présence.SMS

La sortie suivante apparaîtra après l'exécution des commandes. Ici, la première et la quatrième ligne commencent par le nombre 110, mais le mot 'absent' n'existe que 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 de correspondance est décrite dans ce didacticiel en utilisant différents types de modèles dans la commande 'sed'. $PARTITION_COLUMN, 'c' et '.*' est utilisé dans ce tutoriel pour remplacer tout d'une ligne du fichier où le motif correspondant existe. Les utilisations de certains caractères de modèles de définition ont été montrées ici, telles que '^' et '$'. De nombreux autres caractères existent pour définir le modèle dans l'expression régulière à des fins de recherche. J'espère que ce tutoriel aidera le lecteur à connaître les bases du remplacement de tout d'un fichier après le match.

Tutoriel OpenTTD
OpenTTD est l'un des jeux de simulation d'entreprise les plus populaires. Dans ce jeu, vous devez créer une merveilleuse entreprise de transport. Cepe...
SuperTuxKart pour Linux
SuperTuxKart est un excellent titre conçu pour vous apporter l'expérience Mario Kart gratuitement sur votre système Linux. C'est assez stimulant et am...
Tutoriel Bataille pour Wesnoth
The Battle for Wesnoth est l'un des jeux de stratégie open source les plus populaires auxquels vous pouvez jouer en ce moment. Non seulement ce jeu es...