GNU/Linux >> Tutoriales Linux >  >> Linux

Concatenar archivos e insertar una nueva línea entre archivos

Si fuera yo quien lo hiciera, usaría sed:

sed -e '$s/$/\n/' -s *.txt > finalfile.txt

En este patrón sed, $ tiene dos significados, en primer lugar, coincide solo con el último número de línea (como un rango de líneas para aplicar un patrón) y, en segundo lugar, coincide con el final de la línea en el patrón de sustitución.

Si su versión de sed no tiene -s (procesar los archivos de entrada por separado), aunque puedes hacerlo todo como un bucle:

for f in *.txt ; do sed -e '$s/$/\n/' $f ; done > finalfile.txt

Puedes hacer:

for f in *.txt; do (cat "${f}"; echo) >> finalfile.txt; done

Asegúrese de que el archivo finalfile.txt no existe antes de ejecutar el comando anterior.

Si se le permite usar awk puedes hacer:

awk 'FNR==1{print ""}1' *.txt > finalfile.txt

Si tiene suficientes archivos para enumerar cada uno, entonces puede usar la sustitución de procesos en Bash, insertando una nueva línea entre cada par de archivos:

cat File1.txt <(echo) File2.txt <(echo) File3.txt > finalfile.txt

Linux
  1. ¿Diferencia entre 'y' en la línea de comando (bash)?

  2. Ssh:¿Copiar archivos protegidos entre servidores en una línea?

  3. ¿Insertar nuevas líneas con valores faltantes (na)?

  4. Cómo compartir archivos entre Ubuntu y Mac OS X

  5. Subir archivos a la cuenta S3 desde la línea de comandos de Linux

fdupes:una herramienta de línea de comandos para buscar y eliminar archivos duplicados en Linux

Cómo usar el comando cp para copiar archivos y directorios

Instale Dropbox para compartir archivos entre Linux y Windows

Transferir archivos y carpetas entre computadoras con Croc

Compartir archivos entre Linux Mint y Windows 10

Diferencia en espacios en blanco entre dos archivos en Linux