Иногда вполне вероятно, что у вас есть очень длинные текстовые файлы, среди которых трудно найти определенные шаблоны или строки или слова, которые дублируются, или, может быть, есть куча небольших текстовых файлов, где вы хотите упростить сопоставление, и даже использовать конвейер и сопоставлять вывод команды. Также, uniq это команда что ты ищешь.
С uniq вы можете искать лишнюю информацию очень простым способом. Кроме того, это также позволит вам удалить эти дубликаты, если вам нужно. И в этом руководстве вы увидите несколько примеров команды, которые могут оказаться полезными. Помните, что он установлен по умолчанию в подавляющем большинстве дистрибутивов, так что вам не придется устанавливать пакет...
Что ж, прежде всего, давайте посмотрим на пример, чтобы понять основы команды uniq и что она делает, а что нет. За пример, представьте, что вы создаете текстовый файл с именем test.txt, а внутри вы помещаете несколько повторяющихся фраз или слов, например повторяющиеся три строки «привет это тест» и затем используйте с ним uniq:
nano prueba.txt uniq prueba.txt
Ну, в таком случае, вывод команды будет просто:
Salida: Hola, esto es una prueba
То есть поставить одну строчку «привет это тест» исключая другие 2, которые совпадают. Но будьте осторожны, если вы снова используете cat, чтобы увидеть оригинал, вы увидите, что они не были удалены из файла, он просто удалил их из вывода:
cat prueba.txt
чей вывод будет:
Hola, esto es una prueba Hola, esto es una prueba Hola, esto es una prueba
Но команда uniq имеет гораздо больше доступных опций. Например, он может сказать вам сколько раз повторяется строка, указав в начале строки количество повторений. Для этого:
uniq -c prueba.txt
Вы также можете просто печатать повторяющиеся строки, и игнорировать неповторяющиеся:
uniq -d prueba.txt
Или те, которые не дублируются с опцией -u:
uniq -u prueba.txt
Использовать с учетом регистра и быть чувствительным к регистру, вы можете использовать опцию -i:
uniq -i prueba.txt
Хорошо, и как это можно было сделать, чтобы создать файл только с уникальными строками, удаляя все дубликаты сразу. Что ж, это так же просто, как использовать канал для передачи вывода uniq в новый текстовый файл:
uniq prueba.txt > unicas.txt