Поиск повторяющихся/повторяющихся или уникальных слов, занимающих несколько строк в файле

A.B был прав в том, что проблема связана с разрешениями SELinux. Новому файлу требовался тип mysqld_log_t. Я исправил проблему, изменив тип:

chcon -t mysqld_log_t /var/log/mysqld.err

0
09.02.2020, 17:59
1 ответ

Решение

группа

grep -wo "[[:alnum:]]\+" input_file.txt | sort | uniq [-c | -d | -u]

egrep (разрешает метасимволы регулярных выражений -без экранирования)

egrep -wo "[[:alnum:]]+" input_file.txt | sort | uniq [-c | -d | -u]

Пояснение

  1. Сначала вы можете маркировать слова с помощью grep -wo, каждое слово печатается в единственной строке.

  2. Затем вы можете отсортировать токенизированные слова с помощью sort.

  3. Наконец, можно найти последовательные уникальные или повторяющиеся слова с помощью uniq.

    3.1. uniq -cЭто печатает слова и их количество. Покрытие всех совпадающих слов --повторяющихся и уникальных.

    3.2. uniq -dЭто печатает все повторяющиеся слова.

    3.3. uniq -uЭто печатает все уникальные слова.

Примеры

Пример ввода

abc line 1
xyz zzz
123 456
abc end line

Пример 1 --повторяющиеся/уникальные слова с их количеством:

grep -wo '[[:alnum:]]\+' input_file.txt | sort | uniq -c

Выход:

   1 1
   1 123
   1 456
   2 abc
   1 end
   2 line
   1 xyz
   1 zzz

Пример 2 --только повторяющиеся слова:

grep -wo '[[:alnum:]]\+' infile | sort | uniq -d

Выход:

abc
line

Пример 3 --только уникальные слова:

grep -wo '[[:alnum:]]\+' infile | sort | uniq -u

Выход

1
123
456
end
xyz
zzz

Команда Dissection & Sources

  • grepпараметры
    • -wразмечает целые слова, разделенные границами слов (не -символы слов\W)
    • -oвыводит только совпавшие не -пустые части совпадающей строки --, т.е. в нашем случае выводит совпавшие не -пустые слова только в совпадающей строке
  • grepрегулярное выражение
    • [[:alnum:]]Буквенно-цифровые символы
    • \+Персонаж Клини Плюс. Соответствует одному или нескольким вхождениям.
  • sort
  • uniq
    • -cПечатает слова с количеством повторений.
    • -dПечатает только повторяющиеся (повторяющиеся )строки.
    • -uПечатает только неповторяющиеся (уникальные )строки.
2
28.04.2021, 23:23

Теги

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