Вот и все:
echo "a c a c a c a a a a a a a a c c c a c 0 0 a c 0 a"|tr " " "\n"|sort|uniq -c|sort -rn
tr
для преобразования пробелов в символы новой строки, затем sort
, чтобы отсортировать данные (которые теперь представляют собой серию строк) по алфавиту, затем uniq
, чтобы подсчитать их количество, и, наконец, sort
еще раз, чтобы изменить порядок появления по убыванию (сначала максимальное количество вхождений). Предполагается, что каждый элемент разделен одним пробелом (что верно в вашем примере).
Это достаточно близко?
ОС X:
$ stat -f "%m%t%Sm %N" *
1531851236 Jul 17 11:13:56 2018 bar
1531851236 Jul 17 11:13:56 2018 baz
1531851236 Jul 17 11:13:56 2018 foo
1531851236 Jul 17 11:13:56 2018 quux
Линукс:
$ stat -c "%Y %y %n" *
1531851190 2018-07-17 11:13:10.640328282 -0700 bar
1531851190 2018-07-17 11:13:10.640328282 -0700 baz
1531851190 2018-07-17 11:13:10.640328282 -0700 foo
1531851190 2018-07-17 11:13:10.640328282 -0700 quux
Имейте в виду, что некоторые файловые системы Linux по умолчанию не отслеживают время создания (" Birth
" время )файла:
$ stat foo
File: foo
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 262180 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ redacted) Gid: ( 1000/ redacted)
Access: 2018-07-17 11:13:10.640328282 -0700
Modify: 2018-07-17 11:13:10.640328282 -0700
Change: 2018-07-17 11:13:10.640328282 -0700
Birth: -