Команда Linux для нахождения уникального содержания файла во многих текстовых файлах

У меня есть набор файлов, отображающих сообщения об ошибках, каждое из которых имеет traceback. Многие из них имеют то же сообщение об ошибке, и я хотел бы иметь список всех уникальных сообщений об ошибках в каждом файле. Как я нахожу набор уникального содержания файла?

Править: Для разъяснения каждый файл содержит traceback из Python, таким образом, это многострочные файлы, которых я хотел бы найти уникальный набор.

0
задан 13 December 2019 в 02:00

1 ответ

Если у Вас есть "набор" файлов, 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
0
ответ дан 21 December 2019 в 23:34

Другие вопросы по тегам:

Похожие вопросы: