Способы использования команды Uniq в Linux с примерами

by itisgood

Если вы пользователь Linux, и ваша работа связана с работой с текстовыми файлами и строками и их использованием, то вы должны быть уже знакомы с командой uniq, поскольку она наиболее часто используется в этой области.

Для тех, кто не знаком с командой uniq, это инструмент командной строки, который используется для сообщения или опускания повторяющихся строк.

Он в основном фильтрует соседние совпадающие строки от INPUT (или стандартного ввода) и записывается в OUTPUT (или стандартный вывод).

Без параметров соответствующие линии объединяются.

Ниже приведено несколько примеров использования команды uniq.

1) Опустить дубликаты

Выполнение команд uniq без указания каких-либо параметров просто пропускает дубликаты и отображает уникальный вывод строки.

fluser@fvm:~/Documents/files$cat file1 
Hello
Hello
How are you?
How are you?
Thank you
Thank you
fluser@fvm:~/Documents/files$ uniq file1 
Hello
How are you?
Thank you

2) Отображение числа повторяющихся строк

С параметром -c можно просмотреть количество повторяющихся строк в файле

fluser@fvm:~/Documents/files$ cat file1 
Hello
Hello
How are you?
How are you?
Thank you
Thank you
fluser@fvm:~/Documents/files$ uniq -c file1 
      2 Hello
      2 How are you?
      2 Thank you

3) Вывод только дубликатов

Используя параметр -d, мы можем выбрать только те строки, которые были дублированы внутри файла

fluser@fvm:~/Documents/files$ cat file1 
Hello
Hello
Good morning
How are you?
How are you?
Thank you
Thank you
Bye
fluser@fvm:~/Documents/files$ uniq -d file1 
Hello
How are you?
Thank you

4) Игнорировать регистр

Обычно, когда вы используете команду uniq, учитывается регистр.

Но если вы хотите игнорировать случай, вы можете использовать параметр -i

fluser@fvm:~/Documents/files$ cat file1 
Hello
hello
How are you?
How are you?
Thank you
thank you
fluser@fvm:~/Documents/files$ uniq file1 
Hello
hello
How are you?
Thank you
thank you
fluser@fvm:~/Documents/files$ uniq -i file1 
Hello
How are you?
Thank you

5) Вывести только уникальные строки

Если вы хотите увидеть только уникальные строки в файле, вы можете использовать параметр -u

fluser@fvm:~/Documents/files$ cat file1 
Hello
Hello
Good morning
How are you?
How are you?
Thank you
Thank you
Bye
fluser@fvm:~/Documents/files$ uniq -u file1 
Good morning
Bye

6) Сортировка и поиск дубликатов

Иногда дубликаты записей могут содержаться в разных местах файлов.

В этом случае, если мы просто используем команду uniq, она не будет обнаруживать эти повторяющиеся записи в разных строках.

В этом случае нам сначала нужно отсортировать файл, а затем найти дубликаты

fluser@fvm:~/Documents/files$ cat file1 
Adam
Sara
Frank
John
Ann
Matt
Harry
Ann
Frank
John
fluser@fvm:~/Documents/files$ sort file1 | uniq -c
      1 Adam
      2 Ann
      2 Frank
      1 Harry
      2 John
      1 Matt
      1 Sara

7) Сохранить вывод в другом файле

Вывод нашей команды uniq можно просто сохранить в другом файле, как показано ниже.

fluser@fvm:~/Documents/files$ cat file1 
Hello
Hello
How are you?
Good morning
Good morning
Thank you
fluser@fvm:~/Documents/files$ uniq -u file1 
How are you?
Thank you
fluser@fvm:~/Documents/files$ uniq -u file1 output 
fluser@fvm:~/Documents/files$ cat output 
How are you?
Thank you

8) Игнорировать буквы

Чтобы игнорировать несколько символов в начале, вы можете использовать параметр -s, но вам нужно указать количество символов, которые нужно игнорировать

fluser@fvm:~/Documents/files$ cat file1 
1apple
2apple
3pears
4banana
5banana
fluser@fvm:~/Documents/files$ uniq -s 1 file1 
1apple
3pears
4banana

 

You may also like

Leave a Comment