GNU/Linux >> Tutoriels Linux >  >> Linux

Tutoriel Unix Sed :comment exécuter plusieurs commandes Sed

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

Linux
  1. Comment exécuter automatiquement des commandes/scripts lors du redémarrage ou du démarrage

  2. Comment envoyer Stdout à plusieurs commandes ?

  3. Exécuter combiner plusieurs commandes Linux en une seule ligne

  4. Comment créer des commandes personnalisées sous Unix/Linux ?

  5. Comment renommer plusieurs fichiers en une seule commande ou un seul script sous Unix ?

Comment exécuter des commandes Shell via un serveur HTTP

Comment exécuter plusieurs commandes Linux en une seule commande

Comment exécuter plusieurs commandes Linux à la fois dans le terminal Linux

Tutoriel Unix Sed :comment écrire dans un fichier à l'aide de Sed

Tutoriel Unix Sed :Exemples avancés de substitution Sed

Tutoriel Unix Sed :6 exemples d'opération de branchement Sed