GNU/Linux >> Tutoriales Linux >  >> Linux

Tutorial de Unix Sed:cómo ejecutar múltiples comandos Sed

Pregunta: ¿Puedo combinar varios comandos sed? ¿Puedo combinar dos comandos sed y ejecutarlos como un solo comando sed?

Respuesta: En nuestros artículos anteriores, aprendimos sed con comandos únicos:imprimir, eliminar, sustituir y escribir archivos.

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

Nota: La opción -e es opcional para sed con un solo comando. sed ejecutará cada conjunto de comandos mientras procesa la entrada del búfer de patrones.

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

Linux
  1. ¿Cómo enviar Stdout a múltiples comandos?

  2. ¿Cómo cambiar el nombre de varios archivos en un solo comando o secuencia de comandos en Unix?

  3. Tutorial de Unix Sed:cómo ejecutar múltiples comandos Sed

  4. Ejecute combinar múltiples comandos de Linux en una línea

  5. ¿Cómo ejecuto múltiples comandos cuando uso find?

Cómo ejecutar comandos de Shell a través del servidor HTTP

Cómo ejecutar múltiples comandos de Linux en un solo comando

Cómo ejecutar varios comandos de Linux a la vez en la terminal de Linux

Tutorial de Unix Sed:Cómo escribir en un archivo usando Sed

Tutorial de Unix Sed:ejemplos avanzados de sustitución de Sed

Tutorial de Unix Sed:6 ejemplos para la operación de bifurcación de Sed