Dans le précédent tutoriel sed, nous avons discuté des bases de la commande Unix sed et de l'impression de lignes à partir d'un fichier en utilisant l'adresse et les modèles sed .
Dans cet article, voyons comment supprimer des lignes d'un fichier à l'aide d'adresses et de modèles avec 8 exemples impressionnants.
- La commande "p" imprime le tampon (n'oubliez pas d'utiliser l'option -n avec "p")
- La commande "d" est juste en face, c'est pour la suppression. ‘d’ supprimera le tampon d'espace de motif et commencera immédiatement le cycle suivant.
Syntax: # sed 'ADDRESS'd filename # sed /PATTERN/d filename
La syntaxe des ADRESSES et des MOTIFS donnée dans l'impression est également applicable pour la suppression, à l'exception de l'option -n. (-n uniquement pour supprimer le tampon de motif d'impression, peut être utilisé avec la commande "p")
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. Supprimer la nième ligne
‘Nd’ supprime la Nième ligne et imprime les autres lignes.
sed 'Nd' nom de fichier
Selon la méthodologie sed,
- Il lit la première ligne et la place dans son tampon de modèle.
- Vérifiez si la commande fournie est vraie pour cette ligne, si elle est vraie, supprime le tampon d'espace de motif et démarre le cycle suivant. c'est-à-dire Lire la ligne suivante.
- Si la commande fournie n'est pas vraie, comme son comportement normal, elle imprime le contenu du tampon d'espace de modèle.
Par exemple, 3d supprime la 3ème ligne et imprime les autres lignes comme indiqué ci-dessous.
$ sed 3d thegeekstuff.txt 1. Linux - Sysadmin, Scripting etc. 2. Databases - Oracle, mySQL etc. 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.
2. Supprimer À partir de la 3ème ligne et toutes les 2èmes lignes à partir de là.
$ sed '3~2d' thegeekstuff.txt 1. Linux - Sysadmin, Scripting etc. 2. Databases - Oracle, mySQL etc. 4. Security (Firewall, Network, Online Security etc) 6. Cool gadgets and websites 8. Website Design 10.Windows- Sysadmin, reboot etc.
3. Supprimer de la 4ème à la 8ème ligne du fichier.
$ sed '4,8d' thegeekstuff.txt 1. Linux - Sysadmin, Scripting etc. 2. Databases - Oracle, mySQL etc. 3. Hardware 9. Software Development 10.Windows- Sysadmin, reboot etc.
4. Supprimez la dernière ligne de l'entrée.
$ sed '$d' 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
5. Supprimez la ligne qui correspond au modèle donné de l'entrée.
Par exemple, la commande ci-dessous supprime la ligne qui correspond à "Sysadmin".
$ sed /Sysadmin/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
6. Supprime la ligne à partir de laquelle correspond le motif donné à la fin du fichier.
$ sed '/Website/,$d' 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)
7. Supprime la ligne à partir de laquelle correspond le motif donné et 2 lignes à côté.
$ sed '/Storage/,+2d' thegeekstuff.txt 1. Linux - Sysadmin, Scripting etc. 2. Databases - Oracle, mySQL etc. 3. Hardware 4. Security (Firewall, Network, Online Security etc) 8. Website Design 9. Software Development 10.Windows- Sysadmin, reboot etc.
8. Supprimer la ligne vide d'un fichier à l'aide de sed
Vous pouvez également supprimer les lignes vides avec sed. L'exemple sed suivant montre comment utiliser sed et supprimer les lignes vides.
$ sed '/^$/d' 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.