Necesito copiar el contenido de un archivo de texto y pegarlo en otro archivo de texto. El primer archivo de texto tiene 10 líneas de datos y necesito que se copien en el segundo archivo de texto que comienza en la línea número 5 (por ejemplo). Entonces, en el segundo archivo de texto, esos datos deben escribirse de la línea 5 a la línea 14. ¿Cómo se puede hacer esto? Gracias por adelantado. Considérame un novato con respecto a Linux.
text-processing
G. Paschalis
fuente
fuente
(head -n 5 a.txt ; cat b.txt ; tail -n +6 a.txt) > c.txt
La herramienta más fácil aquí podría ser
sed
. Para insertarb.txt
ena.txt
después de la línea 5, se podría escribir:sed
lee el archivo especificado como argumento (a.txt
) línea por línea. Todas las líneas se reproducen en la salida tal como aparecieron en la entrada, a menos que un comando las modifique.La
5
es una dirección (número de línea) en la que se ejecutará el siguiente comando. El comando que usamos esr
, que toma un nombre de archivo como argumento (aquíb.txt
), lo lee por completo y lo inserta en la salida después de la línea actual.Tal como está arriba, esta
sed
línea de comando solo imprimirá la salida al terminal, sin escribir en ningún archivo. Puede redirigirlo a un nuevo archivo (¡no a ninguno de los archivos de entrada!) Utilizando la redirección de salida de Bash:O puede modificar directamente el archivo de entrada externo
a.txt
utilizandosed
el-i
interruptor 's (para "en el lugar"). Si lo escribe como-i.bak
,.bak
primero hará una copia de seguridad del archivo de entrada original con el sufijo :Un ejemplo:
fuente
(Reutilizando un ejemplo elegante de @ByteCommander :)
fuente