У меня есть набор файлов, отображающих сообщения об ошибках, каждое из которых имеет traceback. Многие из них имеют то же сообщение об ошибке, и я хотел бы иметь список всех уникальных сообщений об ошибках в каждом файле. Как я нахожу набор уникального содержания файла?
Править: Для разъяснения каждый файл содержит traceback из Python, таким образом, это многострочные файлы, которых я хотел бы найти уникальный набор.
Если у Вас есть "набор" файлов, find
и xargs
инструменты для использования. Ваши проблемные потребности grep
, sort
и uniq
, также
, Если все Ваши сообщения об ошибках похожи" Error: blah blah
" в начале строки (необходимо было сказать), это сделает это:
find . -type f -print0 |\
xargs -0 --no-run-if-empty grep --no-filename "^Error:" |\
sort | uniq -c | sort -rn
последняя строка является известным выражением для подсчета уникальных случаев. Первое sort
собирает в группу все то же сообщение, uniq -c
выводы только уникальные строки, снабженные предисловием количеством (-c
), последнее sort -rn
виды числами, в обратном порядке.
for readthis in find xargs grep sort uniq ; do
man $readthis
done