Se você não é muito exigente com a aparência do separador:
tail -n +1 *
No Linux, se você digitar cat *, você terá algo assim:
line1 do arquivo1
line2 de file1
line1 do arquivo2
line1 de file3
line2 de file3
line3 do arquivo3
O que eu gostaria é exibir um separador entre os arquivos. Algo como isto:
line1 de file1
line2 de file1
XXXXXXXXXXXX
line1 do arquivo2
XXXXXXXXXXXX
line1 de file3
line2 de file3
line3 do arquivo3
Isso é facilmente possível com um one-liner fácil de digitar de cor?
Se você não é muito exigente com a aparência do separador:
tail -n +1 *
cd /to/your/directory; for each in *; do cat $each; echo "XXXXXXXXXXX"; done
awk 'FNR==1 && NR!=1 {print "XXXXXXXXXXXX"}{print}' *
Ou
awk 'FNR==1 {print "XXXXXX", FILENAME, "XXXXXX"}{print}' *
Ou
awk 'FNR==1 {print "XXXXXX File no. " ++count, "XXXXXX"}{print}' *
Usando apenas Bash (sem cat
):
for file in *; do printf "$(<"$file")\nXXXXXXXXXXXX\n"; done
Editar:
No AWK 4:
awk 'BEGINFILE {print "XXXXXXXXXXXX"}{print}' *
Você pode usar qualquer separador, como os dos outros exemplos desta resposta. Se você quiser o separador no final de cada arquivo, altere BEGINFILE
para ENDFILE
. Ele ainda pode aparecer no início do script, pois é condicional (em vez de implicar em ordem de execução).