Распечатать все файлы, которые находятся на максимальной глубине в каталоге - PullRequest
0 голосов
/ 30 марта 2020

Напечатайте все файлы, которые присутствуют на максимальной глубине, например,

abc/1/2/3/4/r.txt
abc/1/f1.txt
abc/11/22/44/66/77/f2.txt
abc/11/22/44/66/77/f4.txt
abc/11/22/44/66/77/f5.txt

, так что это напечатало бы

abc/11/22/44/66/77/f2.txt
abc/11/22/44/66/77/f4.txt
abc/11/22/44/66/77/f5.txt

Я написал эту команду

$cat listoffiles.txt  | awk -F "/" ' { if ( NF > x ) { x = NF; y = $0 } }END{ print y }'

но это печать только первое вхождение.

1 Ответ

2 голосов
/ 30 марта 2020

Сохраняйте буферизацию самых глубоких файлов и удаляйте их при каждом изменении максимальной глубины. В конце дамп, что находится в буфере.

awk -F'/+' 'NF>max{max=NF;delete buf} NF==max{buf[$0]} END{for(f in buf) print f}' file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...