Mostra todos os arquivos em um diretório - mas com algum espaçamento entre eles

1

No CentOS com Bash 3.2.52 eu desejo mostrar completamente todos os arquivos em dir atual:

cat *

As saídas de todos os arquivos estão sendo exibidas, mas são totalmente justapostas uma à outra ...

Eu não tenho um espaçamento cosmético, o que facilitaria a compreensão de qual arquivo começa onde.

Em vez disso:

file-output_1
file-output_2

Eu gostaria de dizer:

file_output_1

file_output_2

Como eu poderia melhorar o comando cat e shell glob, de modo que cada saída de arquivo (talvez além da última) tenha algum espaçamento, digamos, 1 ou 2 linhas vazias?

    
por JohnDoea 07.09.2018 / 01:48

2 respostas

4

Se você não se importar em obter um cabeçalho de nome de arquivo, bem como o espaçamento, então, pelo menos com as implementações GNU Coreutils de head / tail você poderia fazer

tail -n +1 *

ou

head -n -0 *
    
por 07.09.2018 / 02:35
1

Você pode usar o comando more em vez de cat . Por exemplo:

$ touch file{01..05}
$ for i in {01..05};do echo string$i > file$i;done

$ ll
total 40
-rw-rw-r-- 1 vagrant vagrant 9 Sep  6 20:38 file01
-rw-rw-r-- 1 vagrant vagrant 9 Sep  6 20:38 file02
-rw-rw-r-- 1 vagrant vagrant 9 Sep  6 20:38 file03
-rw-rw-r-- 1 vagrant vagrant 9 Sep  6 20:38 file04
-rw-rw-r-- 1 vagrant vagrant 9 Sep  6 20:38 file05

Agora, use more :

$ more file*
::::::::::::::
file01
::::::::::::::
string1
::::::::::::::
file02
::::::::::::::
string2
::::::::::::::
file03
::::::::::::::
string3
::::::::::::::
file04
::::::::::::::
string4
::::::::::::::
file05
::::::::::::::
string5
    
por 07.09.2018 / 02:07