Agregue el conjunto de comandos al comienzo de archivos múltiples

Agregue el conjunto de comandos al comienzo de archivos múltiples

Necesito escribir un script para reemplazar una parte del archivo por otra. Estoy manejando cientos de archivos.

Tengo una lista de comandos para agregar a un montón de archivos de texto. Pero en los archivos tengo comandos comunes al principio.

Simplemente quiero reemplazar la lista de comandos con mi lista de comandos. Más información se proporciona a continuación.

Archivo original

%apj=E:\Work\Informatin\Regarding work\DND.apj
%mem=4GB
%nprocshared=2
#p oyu opsd qtnv/1-a(x) kglgg=uioewr

Application 

0 1
 X                 -3.66480600    0.10278400   -0.00655500
 Y                 -4.11487100    1.45621700   -0.05226200
 Z                 -5.10300200    1.90042600    0.83864800

 1 2 1.0 13 1.0 23 1.0
 2 3 1.5 4 1.5
 3 5 1.5 6 1.0
 4 7 1.5 8 1.0

Personajes que quiero usar para reemplazar

%apj=D:\Store\Data\Diff All\SMC.apj
%mem=800MB
%nprocshared=4
#p udf AMER hbvn/3-b(n) huggh=whea

Use

0 1
 X                 -3.66480600    0.10278400   -0.00655500
 Y                 -4.11487100    1.45621700   -0.05226200
 Z                 -5.10300200    1.90042600    0.83864800

Después de reemplazar con mi lista de comandos, también quiero eliminar los caracteres que se encuentran después de una línea en blanco, es decir, las siguientes líneas, y conservar el espacio en blanco.

1 2 1.0 13 1.0 23 1.0
2 3 1.5 4 1.5
3 5 1.5 6 1.0
4 7 1.5 8 1.0

Respuesta1

Creo que esto es lo que necesitas:

sed '1,6d
7c%apj=D:\Store\Data\Diff All\SMC.apj\
%mem=800MB\
%nprocshared=4\
#p udf AMER hbvn/3-b(n) huggh=whea\
\
Use\

/^$/q' filename

En lugar de reemplazar línea por línea, las primeras seis líneas se eliminan ( 1,6d) y la séptima se reemplaza por el nuevo encabezado, insertado con el ccomando. Finalmente, el procesamiento se detiene en la siguiente línea vacía.

Si proporciona el resultado esperado, agregue la opción -ipara realizar el reemplazo directamente en el archivo (GNU sed, adaptación para la versión BSD).

información relacionada