Предполагая, что пути не содержат символов новой строки,
$ sed 's/^.*[[:blank:]]"//; s/"$//' <file
/user/bin/share
/home/user/.local
/root/
Код sed
сначала удаляет все в каждой строке до первого символа "
включительно, которому предшествует пробел (или табуляция ). Затем он удаляет "
в конце.
Это позволяет путям содержать пробелы и встроенные символы "
, но не комбинацию пробел+"
.
В зависимости от количества уникальных пользователей вы можете позволить awk
выполнять тяжелую работу (, подсчитывая повторяющиеся записи по мере их чтения, без сортировки ), а затем сортировать результат. Это должно работать быстрее (, но вам все равно придется все распаковывать, а это занимает некоторое время):
$ for subfolder in folder; do gunzip -rc $subfolder | awk -F, '{l[$1]++} END {for (i in l) {print l[i],i}}' | sort -rn | head;done
Для справки, вы не можете заставить его работать быстрее, чем:
$ for subfolder in folder; do gunzip -rc $subfolder > /dev/null;done