Remplacez la dernière occurrence du texte dans une chaîne:
Cette section montre comment la dernière occurrence du modèle de recherche dans une chaîne peut être remplacée en utilisant la commande 'SED'.
Exemple-1: remplacer la dernière occurrence d'un mot basé sur le motif
La commande «SED» suivante recherchera le mot 'Php' dans la chaîne et remplacer le mot de recherche par le mot 'Angularjs' Si le mot existe dans la chaîne.
$ echo "java php bash python javascript perl php laravel" |
sed 'S / \ (.* \) Php / \ 1angularjs / '
La sortie suivante apparaîtra après l'exécution de la commande. Ici, le mot 'Php' Existe deux fois dans la chaîne, et la dernière occurrence a été remplacée par le mot ' Angularjs'.
Exemple-2: remplacer la dernière occurrence de motif basé sur le chiffre
La commande «SED» suivante recherchera n'importe quel chiffre dans la chaîne et remplacera le dernier chiffre par le numéro 9.
$ echo "La première valeur comptoir 2. La deuxième valeur compteur 4 "|
sed 'S / \ (.* \) [0-9]) * / \ 19 / '
La sortie suivante apparaîtra après l'exécution de la commande. Ici, le chiffre apparaît deux fois dans la chaîne, et le dernier chiffre, 4, a été remplacé par le numéro 9.
Exemple-3: Remplacez le dernier chiffre d'un nombre basé sur le motif
La commande «SED» suivante remplacera le dernier chiffre qui existe dans la valeur de la chaîne par la valeur par Double Zero (0 0).
$ echo "Le prix du produit est de 500 $."| SED 'S / \ (.* \) [0-9] / \ 100 / '
La sortie suivante apparaîtra après l'exécution de la commande. Ici, 500 existe dans la valeur de la chaîne. Ainsi, selon la commande de remplacement, le dernier zéro de 500 a été remplacé par deux doubles zéro, et la valeur remplacée est 5000.
Exemple-4: Remplacez la dernière occurrence d'un mot par un autre mot
La commande «SED» suivante recherchera le mot 'Jun' dans la chaîne et remplacer la dernière occurrence du mot par la valeur, 'Peut'.
$ printf "% s \ n" Jan février juin juin juin de déc | tr '\ n' "|
sed 'S / \ (.* \) Jun / \ 1may / '| tr "'\ n'
La sortie suivante apparaîtra après l'exécution de la commande. Ici, le mot 'Jun' existe deux fois dans la chaîne, et la dernière occurrence a été remplacée par le mot 'Peut'.
Remplacez la dernière occurrence d'un texte dans un fichier:
Créer un fichier texte nommé Ventes.SMS avec le contenu suivant pour tester la commande «SED» utilisée dans cette partie du tutoriel pour remplacer la dernière occurrence d'un texte sur le modèle.
Ventes.SMS
Montant de l'année d'un moisExemple-5: remplacez la dernière occurrence d'un mot par un autre mot
La commande «SED» suivante recherchera le mot 'Janvier'Dans le fichier et remplacer la dernière occurrence de ce mot par le mot, 'Juillet'.
$ Cat Ventes.SMS
$ sed '$ s / janvier / juillet /' ventes.SMS
La sortie suivante apparaîtra après l'exécution des commandes. Le mot 'Janvier' apparaît deux fois dans le fichier. La dernière occurrence qui existe dans le 7e La ligne du fichier a été remplacée par le mot 'Juillet'Dans la sortie.
Exemple-6: Remplacez la dernière occurrence d'un nombre par un autre numéro
'tac' La commande est utilisée pour inverser le contenu du fichier. 'tac' La commande est utilisée avec la commande «sed» dans la commande suivante pour remplacer la dernière occurrence de '2019'avec le mot, '2017'.
$ Cat Ventes.SMS
$ TAC Sales.txt | Sed '0, / 2019 / S / 2019/2017 /' | tac
La sortie suivante apparaîtra après l'exécution des commandes. Ici, la valeur de l'année, '2019'apparaît trois fois dans le fichier. La première, 'tac' La commande a inversé le contenu du fichier et envoyé la sortie dans le 'Sed' commande pour remplacer la première occurrence de '2019' qui est la dernière occurrence dans le fichier par la valeur de l'année, '2017'. Après le remplacement, la sortie a été envoyée au 'tac' commande pour inverser la sortie. De cette façon, la dernière occurrence de '2019'a été remplacé par la valeur, '2017'.
Exemple-7: remplacez tout d'une ligne basée sur la dernière occurrence d'un mot
Ce qui suit 'Sed' La commande remplacera la ligne par une onglet (\ t) du texte délimité par rapport à la ligne par rapport à la chaîne 'Mar' Pour la dernière fois dans le fichier.
$ Cat Ventes.SMS
$ TAC Sales.txt | Sed '0, / ^ mar.* / s / ^ mar.* / Juillet \ t \ t2018 \ t 400000 / '| tac
La sortie suivante apparaîtra après l'exécution des commandes. Deux lignes du fichier commencent par la chaîne, 'Mar', et la dernière occurrence de cette chaîne apparaît dans le 5e doubler. La première 'tac' La commande a été utilisée pour inverser le contenu du fichier et a envoyé la sortie au 'sed ' commande. 'sed"La commande a remplacé la ligne par un texte,"Jully 2018 400000 $'Où la chaîne de recherche trouvée pour la première fois. La sortie de le 'sed'La commande a été envoyée au 'tac' commande à nouveau pour inverser la sortie qui est le contenu principal du fichier.
Conclusion:
La commande 'SED' peut être utilisée pour remplacer n'importe quelle partie d'une chaîne ou une ligne du fichier de différentes manières en utilisant des modèles d'expression réguliers. Ce tutoriel a montré les moyens de remplacer la dernière occurrence du texte de recherche dans une chaîne ou un fichier en utilisant plusieurs commandes «SED». Comment la commande «TAC» peut être utilisée avec la commande «SED» pour remplacer la dernière occurrence du texte de recherche a également été affichée dans ce tutoriel. Mais toutes les commandes utilisées ici généreront temporairement la sortie. Vous devez utiliser l'option '-i' avec la commande 'sed' pour modifier le contenu du fichier en fonction de la base du modèle.