GNU/Linux >> Tutoriales Linux >  >> Linux

¿Insertar un archivo en otro archivo después de la primera aparición de un patrón?

Quiero insertar el contenido del archivo 1 en el archivo 2 después de un PATRÓN coincidente. Quiero hacerlo solo después de la primera aparición del PATRÓN.

Me gustaría saber la modificación que debo hacer al siguiente comando para mis necesidades.

sed -i "/PATTERN/r file1" file2

Respuesta aceptada:

sed '/PATTERN/{
       r file1
       :a
       n
       ba
     }' file2

:a , n , ba es solo un ciclo que imprime todo el contenido del archivo después del PATRÓN hasta el final. y tenga en cuenta que esas 6 líneas son solo un comando, pero se necesita una nueva línea para delimitar el siguiente comando sed después de r , : y b .

información adicional de info sed :

`n'
     If auto-print is not disabled, print the pattern space, then,
     regardless, replace the pattern space with the next line of input.
     If there is no more input then `sed' exits without processing any
     more commands.

`: LABEL'
     [No addresses allowed.]

     Specify the location of LABEL for branch commands.  In all other
     respects, a no-op.

`b LABEL'
     Unconditionally branch to LABEL.  The LABEL may be omitted, in
     which case the next cycle is started.

Linux
  1. ¿Cómo almacenar la salida de SHOW PROCESSLIST en un archivo en MySQL?

  2. Salida a Stdout y al mismo tiempo Grep en un archivo?

  3. ¿Devolver solo la parte de una línea después de un patrón coincidente?

  4. ¿Copiar el contenido de un archivo en el portapapeles sin mostrar su contenido?

  5. ¿Cómo contar el número de líneas en un archivo después de una coincidencia Grep?

El Bash'?

¿Cómo escribir un archivo en otro?

¿Cómo copiar un archivo de otro directorio al actual?

¿Cómo eliminar las líneas que aparecen en el archivo B de otro archivo A?

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

¿Qué significa un punto después de los bits de permiso del archivo?