find . -type f | awk -F / '{a[$2]=a[$2] " " $0}; END {for(b in a){print a[b]}}'
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.
find . -type f | awk -F / '{a[$2]=a[$2] " " $0}; END {for(b in a){print a[b]}}'
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