cat file1 file2combinará dos archivos de texto. Pero si quiero agregar un separador entre, como una o dos líneas ********************************, ¿tengo que abrir el primer archivo y agregar la línea al final, o abrir el segundo archivo y agregar la línea en la parte superior, y luego ejecutar el catcomando? ¿Se puede hacer con solo ejecutar un comando?
text-processing
StackExchange para todos
fuente
fuente

echo '**********************' |cat file - file2echosiempre lo hace.printf 'no newline' | tee file1 >file2; printf 'no newline' | cat file1 - file2...<(echo -n '****')para suprimir la nueva línea del eco.catsolo muestra uno cuando el archivo tiene uno (al final).Otro enfoque sin usar
catcomo se encuentra desde aquí ,La
sed 1dtubería final es eliminar la primera línea que también tendrá el delimitador.Sin embargo, el
seduso final bien podría evitarse si utilizamos el comando como lo sugiere 1_CR en sus comentarios.fuente
sedcambiando elawkpatrón aFNR == 1 && NR != 1También puede dividirlo en múltiples comandos:
Y puede canalizar o redirigir eso usando un comando de grupo o un subshell:
Por supuesto, puede escribir eso sobre varias líneas en lugar de usar punto y coma, como de costumbre. Y es fácil de extender a otro archivo con otro delimitador, etc.
fuente
Con
paste:fuente