LinuxでUniqコマンドを使用する方法と例

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) Save 別のファイルの出力

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

このトピックについて共有する質問や考えがある場合は、フィードバックフォームを使用してください

また読む:

  • 例でLinuxTrコマンドを使用する方法
  • 例を含む106個のLinuxコマンドの概要