Question : Est-il possible pour moi de combiner plusieurs commandes sed ? Puis-je combiner deux commandes sed et l'exécuter comme une seule commande sed ?
Réponse : Dans nos articles précédents, nous avons appris sed avec des commandes uniques :impression, suppression, substitution et écriture de fichier.
Dans cet article, voyons comment combiner plusieurs commandes sed à l'aide de l'option -e, comme indiqué ci-dessous.
Syntax: #sed -e 'command' -e 'command' filename
Remarque : L'option -e est facultative pour sed avec une seule commande. sed exécutera chaque ensemble de commandes tout en traitant l'entrée du tampon de modèle.
Créons d'abord le fichier geekstuff.txt qui sera utilisé dans tous les exemples mentionnés ci-dessous.
# cat thegeekstuff.txt 1. Linux - Sysadmin, Scripting etc. 2. Databases - Oracle, mySQL etc. 3. Hardware 4. Security (Firewall, Network, Online Security etc) 5. Storage 6. Cool gadgets and websites 7. Productivity (Too many technologies to explore, not much time available) 8. Website Design 9. Software Development 10.Windows- Sysadmin, reboot etc.
1.Supprimez les 4ème et 2ème lignes de l'entrée
Cet exemple sed supprime les 4ème et 2ème lignes du fichier thegeekstuff.txt. En utilisant l'option "-e", vous pouvez donner n'importe quel nombre de commandes avec sed.
$ sed -e '4d' -e '2d' thegeekstuff.txt 1. Linux - Sysadmin, Scripting etc. 3. Hardware 5. Storage 6. Cool gadgets and websites 7. Productivity (Too many technologies to explore, not much time available) 8. Website Design 9. Software Development 10.Windows- Sysadmin, reboot etc.
2. Imprimez les lignes qui correspondent au motif1 et les lignes correspondent au motif2
Cet exemple sed imprime toutes les lignes qui correspondent au modèle "Storage" ou "Software".
$ sed -n -e '/Software/p' -e '/Storage/p' thegeekstuff.txt 5. Storage 9. Software Development
3. Supprimer la première, la dernière et toutes les lignes vides de l'entrée
Cet exemple sed supprime la première ligne, la dernière ligne et toutes les lignes vides du fichier d'entrée.
$ sed -e '1d' -e '$d' -e '/^$/d' thegeekstuff.txt 2. Databases - Oracle, mySQL etc. 3. Hardware 4. Security (Firewall, Network, Online Security etc) 5. Storage 6. Cool gadgets and websites 7. Productivity (Too many technologies to explore, not much time available) 8. Website Design 9. Software Development