arquivos por diretório em uma única linha

1

Eu tenho os seguintes diretórios:

Sample1 
Sample2        

Cada um deles contém várias subpastas, como

Sample1/R1/
Sample1/R2/
Sample1/R3/
Sample2/R1/
Sample2/R2/
Sample2/R3/

Que contém ainda os arquivos:

Sample1/R1/file1
Sample1/R2/file1
Sample1/R3/file1
Sample2/R1/file1
Sample2/R2/file1
Sample2/R3/file1

Eu quero uma lista como:

Sample1/R1/file1 Sample1/R2/file1 Sample1/R3/file1
Sample2/R1/file1 Sample2/R2/file1 Sample2/R3/file1

Eu tentei 'ls ;,' encontrar 'mas sem sorte.

Por favor, alguém pode ajudar?

Agradecemos antecipadamente.

    
por utritala 15.01.2016 / 11:58

2 respostas

2

find . -type f | awk -F / '{a[$2]=a[$2] " " $0}; END {for(b in a){print a[b]}}'
    
por 15.01.2016 / 13:42
1

com zsh :

for d (Sample*) print -r $d/*/*

Ou para imprimir todos os arquivos que não são de diretório:

for d (Sample*) print -r $d/**/*(^/)

(observe que, se houver nomes de arquivos que contenham caracteres de nova linha, não estarão em uma linha).

Ou com qualquer shell parecido com o Bourne:

for d in Sample*; do
  find "$d" ! -type d | paste -sd ' ' -
done
    
por 15.01.2016 / 12:50

Tags