GNU/Linux >> Tutoriales Linux >  >> Linux

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

Este artículo forma parte de la serie de tutoriales de Unix Sed. En artículos anteriores, discutimos sobre la operación de impresión de sed, la operación de eliminación de sed y la búsqueda y reemplazo de sed.

En este artículo, revisemos cómo extraer parte de un archivo y escribirlo en otro archivo usando sed.

Sed proporciona el comando "w" para escribir los datos del espacio del patrón en un archivo nuevo.

Sed crea o trunca el nombre de archivo dado antes de leer la primera línea de entrada y escribe todas las coincidencias en un archivo sin cerrar y volver a abrir el archivo.

Syntax: 

#sed 'ADDERSSw outputfile' inputfilename

#sed '/PATTERN/w outputfile' inputfilename

Sed lee una línea y la coloca en un búfer de patrón y escribe el búfer de patrón en el archivo de salida dado de acuerdo con los comandos provistos.

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.

Revisemos algunos ejemplos del comando de escritura en sed.

1. Escribe la primera línea del archivo

En este ejemplo, 1 (dirección) hace referencia a la primera línea de la entrada y w escribe el búfer de patrones en el archivo de salida “output.txt”

$ sed -n '1w output.txt' thegeekstuff.txt

$ cat output.txt
1. Linux - Sysadmin, Scripting etc.

2. Escribe la primera y última línea del archivo

En este ejemplo, 1 y $ se refieren a la primera y última línea respectivamente.

$ sed -n -e '1w output.txt' -e '$w output.txt' thegeekstuff.txt

$ cat output.txt
1. Linux - Sysadmin, Scripting etc.
10.Windows- Sysadmin, reboot etc.

3. Escriba las coincidencias de líneas con el patrón Storage o Sysadmin

En este ejemplo, el comando sed escribe las líneas que coinciden con el patrón "Almacenamiento" o "Sysadmin".

$ sed -n -e '/Storage/w output.txt' -e '/Sysadmin/w output.txt' thegeekstuff.txt

$ cat output.txt
1. Linux - Sysadmin, Scripting etc.
5. Storage
10.Windows- Sysadmin, reboot etc.

4. Escriba las líneas desde las que coincide el patrón hasta el final del archivo

En este ejemplo, /Almacenamiento/,$ representa coincidencias de línea desde Almacenamiento hasta el final del archivo.

$ sed -n '/Storage/,$w output.txt' thegeekstuff.txt

$ cat output.txt
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.

5. Escriba las líneas que coincidan con el patrón y las siguientes dos líneas del partido

En este ejemplo, el comando de envío escribe las coincidencias de línea para "Almacenamiento" y dos líneas al lado.

$ sed -n '/Storage/,+2w output.txt' thegeekstuff.txt

$ cat output.txt
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)

Linux
  1. ¿Cómo reemplazar una cadena en un archivo (s)?

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

  3. ¿Cómo escribir un entero en un archivo binario usando Bash?

  4. ¿Cómo agregar a un archivo en C, usando Abrir en modo O_APPEND en Linux?

  5. ¿Cómo inserto texto en la primera línea de un archivo usando sed?

Cómo convertir un archivo de Windows a un archivo UNIX

Cómo:una introducción al uso de Git

Tutorial de Unix Sed:Impresión de líneas de archivos usando direcciones y patrones

Tutorial de Unix Sed:busque y reemplace texto dentro de un archivo usando RegEx

Tutorial de Unix Sed:eliminar líneas de archivos usando direcciones y patrones

Tutorial de Unix Sed:operación de archivos de varias líneas con 6 ejemplos prácticos