La sortie suivante montre que GNU Sed de la version 4.4 est installé dans le système.
Syntaxe:
sed [options]...[scénario] [déposer]
Si aucun nom de fichier n'est fourni avec la commande `sed`, le script fonctionnera sur les données d'entrée standard. Le script `sed` peut être exécuté sans aucune option.
Teneur :
- Substitution de texte de base à l'aide de « sed »
- Remplacer toutes les instances d'un texte dans une ligne particulière d'un fichier en utilisant l'option 'g'
- Remplacer la deuxième occurrence seulement d'une correspondance sur chaque ligne
- Remplacer uniquement la dernière occurrence d'une correspondance sur chaque ligne
- Remplacer la première correspondance dans un fichier par un nouveau texte
- Remplacer la dernière correspondance dans un fichier par un nouveau texte
- Échappement de la barre oblique inverse dans les commandes de remplacement pour gérer la recherche et le remplacement des chemins de fichiers
- Remplacez le chemin complet de tous les fichiers par le nom de fichier sans répertoire
- Texte de substitution mais uniquement si un autre texte est trouvé dans la chaîne
- Texte de substitution mais uniquement si un autre texte n'est pas trouvé dans la chaîne
- Ajoutez une chaîne avant après le motif correspondant à l'aide de ' 1 '
- Supprimer les lignes correspondantes
- Supprimer la ligne correspondante et 2 lignes après la ligne correspondante
- Supprimer tous les espaces à la fin de la ligne de texte
- Supprimer toutes les lignes qui ont une correspondance deux fois sur la ligne
- Supprimer toutes les lignes qui ont le seul espace blanc
- Supprimer tous les caractères non imprimables
- S'il y a une correspondance dans la ligne, ajoutez quelque chose à la fin de la ligne
- S'il y a une correspondance dans la ligne, insérez la ligne avant la correspondance
- S'il y a une correspondance dans la ligne, insérez la ligne après la correspondance
- S'il n'y a pas de correspondance, ajoutez quelque chose à la fin de la ligne
- S'il n'y a pas de correspondance supprimez la ligne
- Dupliquer le texte correspondant après avoir ajouté un espace après le texte
- Remplacer l'une d'une liste de chaînes par la nouvelle chaîne
- Remplacer une chaîne correspondante par une chaîne contenant des sauts de ligne
- Supprimez les nouvelles lignes du fichier et insérez une virgule à la fin de chaque ligne
- Supprimez les virgules et ajoutez des nouvelles lignes pour diviser le texte en plusieurs lignes
- Rechercher une correspondance insensible à la casse et supprimer la ligne
- Rechercher une correspondance insensible à la casse et remplacer par un nouveau texte
- Trouver une correspondance insensible à la casse et remplacer par toutes les majuscules du même texte
- Trouver une correspondance insensible à la casse et remplacer par toutes les minuscules du même texte
- Remplacer tous les caractères majuscules du texte par des caractères minuscules
- Recherchez le numéro en ligne et ajoutez le symbole monétaire après le numéro
- Ajouter des virgules aux nombres qui ont plus de 3 chiffres
- Remplacer les tabulations par 4 espaces
- Remplacer 4 caractères d'espace consécutifs par un caractère de tabulation
- Tronquer toutes les lignes aux 80 premiers caractères
- Recherchez une expression régulière de chaîne et ajoutez du texte standard après celle-ci
- Rechercher une expression régulière de chaîne et une deuxième copie de la chaîne trouvée après celle-ci
- Exécution de scripts `sed` multi-lignes à partir d'un fichier
- Faire correspondre un motif multiligne et le remplacer par un nouveau texte multiligne
- Remplacer l'ordre de deux mots qui correspondent à un modèle
- Utiliser plusieurs commandes sed à partir de la ligne de commande
- Combiner sed avec d'autres commandes
- Insérer une ligne vide dans un fichier
- Supprimez tous les caractères alphanumériques de chaque ligne d'un fichier.
- Utilisez '&' pour faire correspondre la chaîne
- Changer de paire de mots
- Mettre en majuscule le premier caractère de chaque mot
- Imprimer les numéros de ligne du fichier
1. Substitution de texte de base à l'aide de « sed »
Toute partie particulière d'un texte peut être recherchée et remplacée en utilisant la recherche et le remplacement du motif à l'aide de la commande `sed`. Dans l'exemple suivant, « s » indique la tâche de recherche et de remplacement. Le mot « Bash » sera recherché dans le texte, Bash Scripting Language et si le mot existe dans le texte, il sera remplacé par le mot « Perl ».
$chassèrent « Langage de script Bash » | sed 's/Bash/Perl/'
Sortir:
Le mot « Bash » existe dans le texte. La sortie est donc « Langage de script Perl ».
La commande `sed` peut également être utilisée pour substituer n'importe quelle partie du contenu d'un fichier. Créer un fichier texte nommé jour de la semaine.txt avec le contenu suivant.
jour de la semaine.txt
LundiMardi
Mercredi
jeudi
vendredi
samedi
dimanche
La commande suivante recherchera et remplacera le texte « Dimanche », par le texte « Dimanche est un jour férié ».
$chatjour de la semaine.txt$sed 's/Dimanche/Le dimanche est férié/'jour de la semaine.txt
Sortir:
« Dimanche » existe dans le fichier weekday.txt et ce mot est remplacé par le texte « Dimanche est un jour férié » après avoir exécuté la commande « sed » ci-dessus.
2. Remplacez toutes les instances d'un texte dans une ligne particulière d'un fichier en utilisant l'option 'g'
L'option 'g' est utilisée dans la commande 'sed' pour remplacer toutes les occurrences du motif correspondant. Créer un fichier texte nommé python.txt avec le contenu suivant pour connaître l'utilisation de l'option 'g'. Ce fichier contient le mot. 'Python' plusieurs fois.
python.txt
Python est un langage très populaire.
Python est facile à utiliser. Python est facile à apprendre.
Python est un langage multiplateforme
La commande suivante remplacera toutes les occurrences de ' Python ' dans la deuxième ligne du fichier, python.txt . Ici, 'Python' se produit deux fois dans la deuxième ligne.
$ chat python.SMS$ sed'2 s / Python / perl / g'python.SMS
Sortir:
La sortie suivante apparaîtra après l'exécution du script. Ici, toute occurrence de 'Python' dans la deuxième ligne est remplacée par 'Perl'.
3. Remplacez la deuxième occurrence seulement d'une correspondance sur chaque ligne
Si un mot apparaît plusieurs fois dans un fichier, l'occurrence particulière du mot dans chaque ligne peut être remplacée en utilisant la commande `sed` avec le numéro d'occurrence. La commande `sed` suivante remplacera la deuxième occurrence du motif de recherche dans chaque ligne du fichier, python.txt .
$ sed's/Python/perl/g2'python.SMSSortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus. Ici, le texte de recherche, ' Python' apparaît deux fois dans la deuxième ligne seulement et il est remplacé par le texte, ' Perl '.
4. Remplacez uniquement la dernière occurrence d'une correspondance sur chaque ligne
Créer un fichier texte nommé lang.txt avec le contenu suivant.
lang.txt
Langage de programmation Bash. Langage de programmation Python. Langage de programmation Perl.
Langage Signalétique Hyper Text.
Langage de balisage extensible.
5. Remplacer la première correspondance dans un fichier par un nouveau texte
La commande suivante remplacera uniquement la première correspondance du modèle de recherche, ' Python « par le texte, 'perle '. Ici, '1' est utilisé pour faire correspondre la première occurrence du motif.
$ chat python.SMS$ sed'1 s / Python / perl /'python.SMS
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus. Ici. la première occurrence de « Python » dans la première ligne est remplacée par « perl ».
6. Remplacer la dernière correspondance dans un fichier par un nouveau texte
La commande suivante remplacera la dernière occurrence du motif de recherche, 'Python « par le texte, 'Frapper'. Ici, '$' Le symbole est utilisé pour correspondre à la dernière occurrence du motif.
$ chat python.SMS$ sed -e'$ s / Python / Bash /'python.SMS
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus.
7. Échapper la barre oblique inverse dans les commandes de remplacement pour gérer la recherche et le remplacement des chemins de fichiers
Il est nécessaire d'échapper la barre oblique inverse dans le chemin du fichier pour la recherche et le remplacement. La commande suivante de `sed` ajoutera une barre oblique inverse () dans le chemin du fichier.
$chassèrent /domicile/Ubuntu/code/perl/ajouter.pl| sed 's; /; \ /; g'Sortir:
Le chemin du fichier, ‘/home/ubuntu/code/perl/add.pl’ est fourni comme entrée dans la commande `sed` et la sortie suivante apparaîtra après l'exécution de la commande ci-dessus.
8. Remplacez le chemin complet de tous les fichiers par le nom de fichier sans répertoire
Le nom du fichier peut être récupéré très facilement à partir du chemin du fichier en utilisant ` nom de base` commander. La commande `sed` peut également être utilisée pour récupérer le nom du fichier à partir du chemin du fichier. La commande suivante récupérera le nom du fichier uniquement à partir du chemin d'accès au fichier fourni par la commande `echo`.
$chassèrent '/home/ubuntu/temp/myfile.txt' | sed 's/.*///'Sortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus. Ici, le nom de fichier, ' monfichier.txt' est imprimé en sortie.
9. Remplacer le texte mais seulement si un autre texte est trouvé dans la chaîne
Créez un fichier nommé ' dept.txt' avec le contenu suivant pour remplacer tout texte basé sur un autre texte.
dept.txt
Liste du nombre total d'étudiants :
CSE - DécompteEEE - Compter
Civil - Comte
Deux commandes replace sont utilisées dans la commande `sed` suivante. Ici, le texte, ' Compter ' sera remplacé par 100 dans la ligne qui contient le texte, « CSE ' et le texte ' Compter' sera remplacé par 70 dans la ligne qui contient le motif de recherche, ' EEE' .
$chatdept.txt$sed -Et '/CSE/ s/Compte/100/; /EEE/ s/Compte/70/;'dept.txt
Sortir:
La sortie suivante apparaîtra après l'exécution des commandes ci-dessus.
10. Remplacer le texte mais seulement si un autre texte n'est pas trouvé dans la chaîne
La commande `sed` suivante remplacera la valeur 'Count' dans la ligne qui ne contient pas le texte, 'CSE'. dept.txt Le fichier contient deux lignes qui ne contiennent pas le texte « CSE ». Alors le ' Compter ‘ le texte sera remplacé par 80 sur deux lignes.
$chatdept.txt$sed -je -Et '/CSE/! s/Compte/80/;'dept.txt
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus.
11. Ajoutez une chaîne avant et après le motif correspondant en utilisant '1'
La séquence de motifs correspondants de la commande `sed` est indiquée par '1', '2' et ainsi de suite. La commande `sed` suivante recherchera le motif, 'Bash' et si le motif correspond, il sera accessible par '1′ dans la partie de remplacement de texte. Ici, le texte « Bash » est recherché dans le texte saisi et un texte est ajouté avant et un autre texte est ajouté après « 1 ».
$chassèrent « Langage bash » | sed 's/(Bash)/Apprendre 1 programmation/'Sortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus. Ici, ' Apprendre' le texte est ajouté avant 'Frapper' et ' la programmation ' le texte est ajouté après ' Frapper'.
12. Supprimer les lignes correspondantes
'ré' L'option est utilisée dans la commande `sed` pour supprimer n'importe quelle ligne du fichier. Créer un fichier nommé os.txt et ajoutez le contenu suivant pour tester la fonction de 'ré' option.
chat os.txt
les fenêtresLinux
Android
TU
La commande `sed` suivante supprimera ces lignes de os.txt fichier contenant le texte « OS ».
$chatos.txt$sed '/Le D'os.txt
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus.
13. Supprimer la ligne correspondante et 2 lignes après la ligne correspondante
La commande suivante supprimera trois lignes du fichier os.txt si le modèle, ' Linux' est trouvé. os.txt contient le texte, « Linux ' dans la deuxième ligne. Ainsi, cette ligne et les deux lignes suivantes seront supprimées.
$sed '/Linux/, + 2d'os.txtSortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus.
14. Supprimez tous les espaces à la fin de la ligne de texte
À l'aide de [:Vide:] La classe peut être utilisée pour supprimer les espaces et les tabulations du texte ou du contenu de n'importe quel fichier. La commande suivante supprimera les espaces à la fin de chaque ligne du fichier, os.txt.
$chatos.txt$sed 's/[[:vide:]]*$//'os.txt
Sortir:
os.txt contient des lignes vides après chaque ligne, celles-ci sont supprimées par la commande `sed` ci-dessus.
15. Supprimez toutes les lignes qui ont une correspondance deux fois sur la ligne
Créez un fichier texte nommé, entrée.txt avec le contenu suivant et supprimez deux fois les lignes du fichier contenant le motif de recherche.
entrée.txt
PHP est un langage de script côté serveur.
PHP est un langage open source et PHP est sensible à la casse.
PHP est indépendant de la plate-forme.
Le texte « PHP » contient deux fois dans la deuxième ligne du fichier, entrée.txt . Deux commandes `sed` sont utilisées dans cet exemple pour supprimer les lignes qui contiennent le motif ' php ' Deux fois. La première commande `sed` remplacera la deuxième occurrence de 'php' dans chaque ligne par ' dl ' et envoyez la sortie dans la deuxième commande 'sed' en entrée. La deuxième commande `sed` supprimera les lignes contenant le texte, ‘ dl '.
$chatentrée.txt$sed 's/php/dl/i2;t'entrée.txt| sed '/dl/d'
Sortir:
entrée.txt le fichier a deux lignes qui contiennent le motif, 'php' Deux fois. Ainsi, la sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus.
16. Supprimez toutes les lignes qui n'ont que des espaces blancs
Sélectionnez n'importe quel fichier qui contient des lignes vides dans le contenu pour tester cet exemple. entrée.txt qui est créé dans l'exemple précédent, contient deux lignes vides qui peuvent être supprimées à l'aide de la commande `sed` suivante. Ici, '^$' est utilisé pour connaître les lignes vides dans le fichier, entrée.txt.
$chatentrée.txt$sed '/^$/d'entrée.txt
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus.
17. Supprimer tous les caractères non imprimables
Les caractères non imprimables peuvent être supprimés de n'importe quel texte en remplaçant les caractères non imprimables par aucun. La classe [:print:] est utilisée dans cet exemple pour connaître les caractères non imprimables. ' ' est un caractère non imprimable et il ne peut pas être analysé directement par la commande 'echo'. Pour cela, le caractère ' ' est affecté dans une variable, $tab qui est utilisé dans une commande 'echo'. La sortie de la commande « echo » est envoyée dans la commande « sed » qui supprimera le caractère « » de la sortie.
$languette= $' '$chassèrent 'Bonjour$tabMonde'
$chassèrent 'Bonjour$tabMonde' | sed 's/[^[:print:]]//g'
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus. La première commande `echo imprimera la sortie avec l'espace de tabulation et la commande `sed` imprimera la sortie après avoir supprimé l'espace de tabulation.
18. S'il y a une correspondance dans la ligne, ajoutez quelque chose à la fin de la ligne
La commande suivante ajoutera « 10 » à la fin de la ligne qui contient le texte, « Windows » dans le os.txt déposer.
$chatos.txt$sed '/ Windows / s / $ / 10 /'os.txt
Sortir:
La sortie suivante apparaîtra après l'exécution de la commande.
19. S'il y a une correspondance dans la ligne, insérez une ligne avant le texte
La commande `sed` suivante recherchera le texte, ‘ PHP est indépendant de la plate-forme' dans le entrée.txt fichier créé auparavant. Si le fichier contient ce texte dans n'importe quelle ligne alors, ' PHP est un langage interprété’ sera inséré avant cette ligne.
$chatentrée.txt$sed '/PHP est indépendant de la plate-forme/ s/^/PHP est un langage interprété. /'entrée.txt
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus.
20. S'il y a une correspondance dans la ligne, insérez une ligne après cette ligne
La commande `sed` suivante recherchera le texte, ‘ Linux' dans le fichier os.txt et si le texte existe dans n'importe quelle ligne alors un nouveau texte, ' Ubuntu ' sera inséré après cette ligne.
$chatos.txt$sed 's/Linux/& Ubuntu/'os.txt
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus.
21. S'il n'y a pas de correspondance, ajoutez quelque chose à la fin de la ligne
La commande `sed` suivante recherchera ces lignes dans os.txt qui ne contient pas le texte, « Linux » et ajoutez le texte, ' Système opérateur ' à la fin de chaque ligne. Ici, ' $ Le symbole ‘ est utilisé pour identifier la ligne où le nouveau texte sera ajouté.
$chatos.txt$sed '/Linux/! S/$/ Système d'exploitation/'os.txt
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus. Trois lignes existent dans le fichier os.txt qui ne contient pas le texte, 'Linux' et le nouveau texte est ajouté à la fin de ces lignes.
22. S'il n'y a pas de correspondance, supprimez la ligne
Créer un fichier nommé web.txt et ajoutez le contenu suivant et supprimez les lignes qui ne contiennent pas le modèle correspondant. web.txt HTML 5JavaScriptCSSPHPMySQLJQuery La commande `sed` suivante recherchera et supprimera les lignes qui ne contiennent pas le texte, 'CSS'. $ cat web.txt$ sed '/CSS/!d' web.txt Sortir: La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus. Il existe une ligne dans le fichier qui contient le texte « CSE ». Ainsi, la sortie ne contient qu'une seule ligne.
23. Dupliquer le texte correspondant après avoir ajouté un espace après le texte
La commande « sed » suivante recherchera le mot « à » dans le fichier, python.txt et si le mot existe, le même mot sera inséré après le mot recherché en ajoutant un espace. Ici, '&' symbole est utilisé pour ajouter le texte en double.
$chatpython.txt$sed -Et 's / à / & à / g'python.txt
Sortir:
La sortie suivante apparaîtra après l'exécution des commandes. Ici, le mot « à » est recherché dans le fichier, python.txt et ce mot existe dans la deuxième ligne de ce fichier. Donc, 'à ’ avec un espace est ajouté après le texte correspondant.
24. Remplacer une liste de chaînes par la nouvelle chaîne
Vous devez créer deux fichiers de liste pour tester cet exemple. Créer un fichier texte nommé liste1.txt et ajoutez le contenu suivant.
liste de chat1.txt
1001=>Jafar Ali1023=>Nir Hossain
1067=>Jean michel
Créer un fichier texte nommé liste2.txt et ajoutez le contenu suivant.
$ cat list2.txt
1001CSE GPA3,631002CSE GPA3.24
1023CSE GPA3.11
1067CSE GPA3,84
La commande `sed` suivante correspondra à la première colonne des deux fichiers texte ci-dessus et remplacera le texte correspondant par la valeur de la troisième colonne du fichier liste1.txt.
$chatliste1.txt$chatliste2.txt
$sed ``chatliste1.txt| ok '{print' -e s / '$ 1' / '$ 3' / '}'``<<<'` liste de chats2.txt`'
Sortir:
1001, 1023 et 1067 de liste1.txt correspondance de fichier avec les trois données de liste2.txt fichier et ces valeurs sont remplacées par les noms correspondants de la troisième colonne de liste1.txt .
25. Remplacez la chaîne correspondante par une chaîne contenant des sauts de ligne
La commande suivante prendra l'entrée de la commande « echo » et recherchera le mot, 'Python' dans le texte. Si le mot existe dans le texte alors un nouveau texte, « Texte ajouté » sera inséré avec une nouvelle ligne. $ echo Bash Perl Python Java PHP ASP | sed 's/Python/Texte ajouté /' Sortir: La sortie suivante apparaîtra après l'exécution de la commande ci-dessus.
26. Supprimez les nouvelles lignes du fichier et insérez une virgule à la fin de chaque ligne
La commande `sed` suivante remplacera chaque nouvelle ligne par une virgule dans le fichier os.txt . Ici, -Avec L'option est utilisée pour séparer la ligne par le caractère NULL.
$sed -Avec 's/ /,/g'os.txtSortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus.
27. Supprimez les virgules et ajoutez une nouvelle ligne pour diviser le texte en plusieurs lignes
La commande `sed` suivante prendra la ligne séparée par des virgules de la commande `echo` comme entrée et remplacera la virgule par une nouvelle ligne.
$chassèrent 'Kaniz Fatema, 30e, lot' | sed 's/,/ /g'Sortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus. Le texte d'entrée contient trois données séparées par des virgules qui sont remplacées par une nouvelle ligne et imprimées sur trois lignes.
28. Trouver une correspondance insensible à la casse et supprimer la ligne
« I » est utilisé dans la commande « sed » pour la correspondance insensible à la casse qui indique ignorer la casse. La commande `sed` suivante recherchera la ligne qui contient le mot, 'linux ' et supprimez la ligne de os.txt déposer.
$chatos.txt$sed '/linux/Id'os.txt
Sortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus. os.txt contient le mot « Linux » qui correspond au modèle, « linux » pour la recherche insensible à la casse et supprimé.
29. Trouver une correspondance insensible à la casse et remplacer par un nouveau texte
La commande « sed » suivante prendra l'entrée de la commande « echo » et remplacera le mot « bash » par le mot « PHP ».
$chassèrent « J'aime la programmation bash » | sed 's/Bash/PHP/i'Sortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus. Ici, le mot « Bash » correspond au mot « bash » pour une recherche insensible à la casse et remplacé par le mot « PHP ».
30. Trouvez une correspondance insensible à la casse et remplacez-la par toutes les majuscules du même texte
' U' est utilisé dans `sed` pour convertir n'importe quel texte en lettres majuscules. La commande `sed` suivante recherchera le mot, 'linux ' dans le os.txt fichier et si le mot existe, il remplacera le mot par toutes les lettres majuscules.
$chatos.txt$sed 's / (linux ) / U 1 / Ig'os.txt
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus. Le mot « Linux » du fichier os.txt est remplacé par le mot « LINUX ».
31. Trouvez une correspondance insensible à la casse et remplacez-la par toutes les minuscules du même texte
‘L’ est utilisé dans `sed` pour convertir n'importe quel texte en lettres minuscules. La commande `sed` suivante recherchera le mot, « Linux » dans le os.txt fichier et remplacez le mot par toutes les lettres minuscules.
$chatos.txt$sed 's / (linux ) / L 1 / Ig'os.txt
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus. Le mot « Linux » est remplacé par le mot « linux » ici.
32. Remplacez tous les caractères majuscules du texte par des caractères minuscules
La commande `sed` suivante recherchera tous les caractères majuscules dans le os.txt fichier et remplacez les caractères par des lettres minuscules en utilisant 'L'.
$chatos.txt$sed 's/(.*)/L1/'os.txt
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus.
33. Recherchez un numéro en ligne et ajoutez n'importe quel symbole de devise avant le numéro
Créer un fichier nommé éléments.txt avec le contenu suivant.
éléments.txt
Disque dur 100Moniteur 80
Souris 10
La commande `sed` suivante recherchera le numéro dans chaque ligne de éléments.txt fichier et ajoutez le symbole monétaire, « $ » avant chaque numéro.
$chatéléments.txt$sed 's / ([0-9] ) / $ 1 / g'éléments.txt
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus. Ici, le symbole '$' est ajouté avant le numéro de chaque ligne.
34. Ajoutez des virgules aux nombres qui ont plus de 3 chiffres
La commande `sed` suivante prendra un nombre en entrée de la commande `echo` et ajoutera une virgule après chaque groupe de trois chiffres en partant de la droite. Ici, ':a' indique l'étiquette et 'ta' est utilisé pour itérer le processus de regroupement.
$chassèrent '5098673' | sed -Et:à-Et 's / (. * [0-9] ) ([0-9] {3 } ) / 1, 2 /; ta'Sortir:
Le nombre 5098673 est donné dans la commande « echo » et la commande « sed » a généré le nombre 5 098 673 en ajoutant une virgule après chaque groupe de trois chiffres.
35. Remplace le caractère de tabulation par 4 caractères d'espace
La commande `sed` suivante remplacera chaque caractère de tabulation ( ) par quatre caractères d'espacement. Le symbole '$' est utilisé dans la commande 'sed' pour correspondre au caractère de tabulation et 'g' est utilisé pour remplacer tous les caractères de tabulation.
$chassèrent -Et '1 2 3' | sed$'s/ / /g'Sortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus.
36. Remplace 4 caractères d'espace consécutifs par un caractère de tabulation
La commande suivante remplacera 4 caractères consécutifs par le caractère de tabulation ( ).
$chassèrent -Et '1 2' | sed$'s/ / /g'Sortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus.
37. Tronquez toutes les lignes aux 80 premiers caractères
Créer un fichier texte nommé dans.txt qui contient les lignes de plus de 80 caractères pour tester cet exemple.
dans.txt
PHP est un langage de script côté serveur.
PHP est un langage open source et PHP est sensible à la casse. PHP est indépendant de la plate-forme.
La commande `sed` suivante tronquera chaque ligne de dans.txt fichier en 80 caractères.
$sed 's/(^.{1,80}).*/1/'dans.txt
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus. La deuxième ligne du fichier in.txt contient plus de 80 caractères et cette ligne est tronquée dans la sortie.
38. Recherchez une expression régulière de chaîne et ajoutez du texte standard après celle-ci
La commande `sed` suivante recherchera le texte, ‘ Bonjour ' dans le texte saisi et ajoutez le texte, ' John ' après ce texte.
$chassèrent 'Bonjour comment vas-tu?' | sed 's/(bonjour)/1 Jean/'Sortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus.
39. Recherchez la chaîne regex et ajoutez du texte après la deuxième correspondance dans chaque ligne
La commande `sed` suivante recherchera le texte, ‘ PHP ' dans chaque ligne de entrée.txt et remplacez la deuxième correspondance de chaque ligne par le texte, « Nouveau texte ajouté » .
$chatentrée.txt$sed 's/(PHP)/1 (Nouveau texte ajouté)/2'entrée.txt
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus. Le texte de recherche, ' PHP ’ apparaît deux fois dans les deuxième et troisième lignes de entrée.txt déposer. Ainsi, le texte, ' Nouveau texte ajouté ’ est inséré dans les deuxième et troisième lignes.
40. Exécuter des scripts `sed` multi-lignes à partir d'un fichier
Plusieurs scripts `sed` peuvent être stockés dans un fichier et tous les scripts peuvent être exécutés ensemble en exécutant la commande `sed`. Créer un fichier nommé 'sedcmd ' et ajoutez le contenu suivant. Ici, deux scripts `sed` sont ajoutés dans le fichier. Un script remplacera le texte, ' PHP ' par 'ASPIC ‘ un autre script remplacera le texte, ‘ indépendant ' par le texte, ' dépendant '.
sedcmd
s/PHP/ASPIC/s/indépendant/dépendant/
La commande « sed » suivante remplacera tout le texte « PHP » et « indépendant » par « ASP » et « dépendant ». Ici, l'option '-f' est utilisée dans la commande 'sed' pour exécuter le script 'sed' à partir du fichier.
$chatsedcmd$sed -Fsedcmd input.txt
Sortir:
La sortie suivante apparaîtra après l'exécution des commandes ci-dessus.
41. Faites correspondre un modèle multiligne et remplacez-le par un nouveau texte multiligne
La commande `sed` suivante recherchera le texte multiligne, « Linux Android » et si le motif correspond, les lignes correspondantes seront remplacées par le texte multiligne, 'Ubuntu Android Lollipop '. Ici, P et D sont utilisés pour le traitement multiligne.
$chatos.txt$sed '$!N;s/Linux Andoid/Ubuntu Andoid Lollipop/;P;D'os.txt
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus.
42. Remplacer l'ordre de deux mots dans un texte qui correspondent à un modèle
La commande `sed` suivante prendra l'entrée de deux mots de la commande `echo` et remplacera l'ordre de ces mots.
$chassèrent 'python perl' | sed -Et 's/([^ ]*) *([^ ]*)/2 1/'Sortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus.
43. Exécutez plusieurs commandes « sed » à partir de la ligne de commande
L'option '-e' est utilisée dans la commande 'sed' pour exécuter plusieurs scripts 'sed' à partir de la ligne de commande. La commande `sed` suivante prendra un texte en entrée de la commande `echo` et remplacera ' Ubuntu ' par ' Kubuntu ' et ' des centaines ' par ' Feutre '.
$chassèrent 'Ubuntu Centos Debian' | sed -Et 's/Ubuntu/Kubuntu/; s/Centos/Fedora/'Sortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus. Ici, « Ubuntu » et « Centos » sont remplacés par « Kubuntu » et « Fedora ».
44. Combinez `sed` avec d'autres commandes
La commande suivante combinera la commande `sed` avec la commande `cat`. La première commande `sed` prendra l'entrée de os.txt et envoyez le résultat de la commande à la deuxième commande `sed` après avoir remplacé le texte 'Linux' par 'Fedora'. La deuxième commande « sed » remplacera le texte « Windows » par « Windows 10 ».
$chatos.txt| sed 's/Linux/Fedora/'| sed 's / windows / Windows 10 / i'Sortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus.
45. Insérer une ligne vide dans un fichier
Créer un fichier nommé liste std avec le contenu suivant.
liste std
#ID #Nom[101] -Mais
[102] -Neha
L'option 'G' est utilisée pour insérer une ligne vide dans un fichier. La commande `sed` suivante insère des lignes vides après chaque ligne de liste std déposer.
$chatliste std$sedG stdlist
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus. Une ligne vide est insérée après chaque ligne du fichier.
46. Remplacez tous les caractères alphanumériques par des espaces dans chaque ligne d'un fichier.
La commande suivante remplacera tous les caractères alphanumériques par un espace dans le liste std déposer.
$chatliste std$mais 's / [A-Za-z0-9] // g'liste std
Sortir:
La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus.
47. Utilisez '&' pour imprimer la chaîne correspondante
La commande suivante recherchera le mot commençant par « L » et remplacera le texte en ajoutant 'La chaîne correspondante est - ' avec le mot correspondant en utilisant le symbole '&'. Ici, 'p' est utilisé pour imprimer le texte modifié.
$sed -n 's/^L/La chaîne correspondante est - &/p'os.txtSortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus.
48. Changer de paire de mots dans un fichier
Créer un fichier texte nommé cours.txt avec le contenu suivant qui contient la paire de mots dans chaque ligne.
cours.txt
PHP ASPOracle MySQL
CodeIgniter Laravel
La commande suivante va changer la paire de mots dans chaque ligne du fichier, cours.txt .
$sed 's/([^ ]*) *([^ ]*)/2 1/'cours.txtSortir:
La sortie suivante apparaîtra après la commutation de la paire de mots dans chaque ligne.
49. Mettre en majuscule le premier caractère de chaque mot
La commande `sed` suivante prendra le texte d'entrée de la commande `echo` et convertira le premier caractère de chaque mot en une lettre majuscule.
$chassèrent « J'aime la programmation bash » | sed 's / ([a-z] ) [[a-zA-Z0-9] * ) / u 1 2 / g'Sortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus. Le texte d'entrée, J'aime la programmation bash est imprimé comme J'aime la programmation Bash après avoir mis le premier mot en majuscule.
50. Imprimer les numéros de ligne du fichier
Le symbole '=' est utilisé dans la commande `sed` pour imprimer le numéro de ligne avant chaque ligne d'un fichier. La commande suivante imprimera le contenu de os.txt fichier avec numéro de ligne.
$sed '='os.txtSortir:
La sortie suivante apparaîtra après l'exécution de la commande ci-dessus. Il y a quatre lignes dans os.txt déposer. Ainsi, le numéro de ligne est imprimé avant chaque ligne du fichier.
Conclusion:
Différentes utilisations de la commande `sed` sont expliquées dans ce tutoriel à l'aide d'exemples très simples. La sortie de tous les scripts `sed` mentionnés ici est générée temporairement et le contenu du fichier original est resté inchangé. Mais si vous le souhaitez, vous pouvez modifier le fichier d'origine en utilisant l'option -i ou -in-place de la commande `sed. Si vous êtes un nouvel utilisateur de Linux et que vous souhaitez apprendre les utilisations de base de la commande `sed` pour effectuer divers types de tâches de manipulation de chaînes, ce didacticiel vous aidera. Après avoir lu ce didacticiel, espérons que tout utilisateur comprendra clairement les fonctions de la commande `sed`.
Questions fréquemment posées
A quoi sert la commande sed ?
La commande sed a un certain nombre d'utilisations différentes. Cela étant dit, l'utilisation principale est de substituer des mots dans un fichier, ou de rechercher et de remplacer.
L'avantage de sed est que vous pouvez rechercher un mot dans un fichier et le remplacer, mais vous n'avez même pas besoin d'ouvrir le fichier - sed fait tout pour vous !
En plus de cela, il peut être utilisé pour la suppression. Tout ce que vous avez à faire est de taper le mot que vous souhaitez rechercher, remplacer ou supprimer dans sed, et il l'affiche pour vous - vous pouvez alors choisir de remplacer ce mot ou de supprimer toutes les traces du mot de votre fichier.
sed est un outil fantastique pour pouvoir remplacer des choses comme les adresses IP et tout ce qui est très sensible que vous ne voudriez pas mettre dans un fichier autrement. sed est un incontournable pour tout ingénieur logiciel !
Qu'est-ce que S et G dans la commande sed ?
Dans ses termes les plus simples, la fonction S qui peut être utilisée dans sed signifie simplement « substitut ». Après avoir tapé le S, vous pouvez remplacer ou substituer tout ce que vous voulez - le simple fait de taper S ne remplacera que la première occurrence du mot sur une ligne.
Par conséquent, si vous avez une phrase ou une ligne qui la mentionne plus d'une fois, la fonction S n'est pas idéale car elle ne remplacera que la première occurrence. Vous pouvez également spécifier un modèle pour que S remplace les mots toutes les deux occurrences.
Spécifier G à la fin de la commande sed effectuera un remplacement global (c'est ce que signifie le G). Dans cet esprit, si vous spécifiez G, il remplacera chaque occurrence du mot que vous avez choisi, plutôt que la première occurrence du S.
Comment exécuter un script sed ?
Vous pouvez exécuter un script sed de plusieurs manières, mais la plus courante est la ligne de commande. Ici, vous pouvez simplement spécifier sed et le fichier sur lequel vous souhaitez utiliser la commande.
Cela vous permet d'utiliser sed sur ce fichier, ce qui vous permet de rechercher, supprimer et remplacer si nécessaire.
Vous pouvez également l'utiliser dans un script shell, et de cette façon, vous pouvez transmettre ce que vous voulez au script, et il exécutera la commande find and replace pour vous. Ceci est utile pour ne pas vouloir spécifier de données très sensibles dans un script, donc à la place, vous pouvez les transmettre en tant que variable
Gardez à l'esprit que cela n'est bien sûr disponible que sur Linux, et vous devrez donc vous assurer que vous disposez d'une ligne de commande Linux afin d'exécuter votre script sed.