Pregunta: ¿Puedo combinar varios comandos sed? ¿Puedo combinar dos comandos sed y ejecutarlos como un solo comando sed?
En este artículo, revisemos cómo combinar varios comandos sed usando la opción -e como se muestra a continuación.
Syntax: #sed -e 'command' -e 'command' filename
Primero creemos el archivo geekstuff.txt que se usará en todos los ejemplos mencionados a continuación.
# 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. Eliminar la 4.ª y 2.ª línea de la entrada
Este ejemplo de sed elimina la cuarta y la segunda línea del archivo thegeekstuff.txt. Usando la opción "-e", puede dar cualquier número de comandos con 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. Imprime las líneas que coinciden con el patrón1 y las líneas coinciden con el patrón2
Este ejemplo de sed imprime todas las líneas que coinciden con el patrón "Almacenamiento" o "Software".
$ sed -n -e '/Software/p' -e '/Storage/p' thegeekstuff.txt 5. Storage 9. Software Development
3. Elimine la primera, la última y todas las líneas en blanco de la entrada
Este ejemplo sed elimina la primera línea, la última línea y todas las líneas en blanco del archivo de entrada.
$ 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