我有以下目录:
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