tree -f
でいいじゃんという話。
$ tree test | awk 'NF{depth=gsub("[│├└]","&",$0); if(last_depth < depth){dirs[depth]=last_dir;}else if(last_depth > depth){dirs[last_depth]="";} last_dir=$NF;last_depth=depth;pdir=".";for (i in dirs){pdir=pdir"/"dirs[i];} gsub("/$","",pdir);$NF=pdir"/"$NF;print}' | sed '$d'
Preparation
$ mkdir test/{aaa,bbb}
$ touch test/aaa/{aaa1,aaa2,aaa3}