每个目录的文件在一行中

每个目录的文件在一行中

我有以下目录:

Sample1 
Sample2        

每个它都包含多个子文件夹,例如

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

其中进一步包含文件:

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

我想要一个像这样的列表:

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

我尝试过“ls;”、“查找”但没有运气。

请问有人可以帮忙吗?

可以提前致谢。

答案1

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

答案2

zsh

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

或者打印所有非目录文件:

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

(请注意,如果文件名包含换行符,则该文件名不会在一行上)。

或者使用任何类似 Bourne 的 shell:

for d in Sample*; do
  find "$d" ! -type d | paste -sd ' ' -
done

相关内容