GNU/Linux >> Linux の 問題 >  >> Linux

7 ファイルから重複行を削除する Linux Uniq コマンドの例

Uniq コマンドは、ファイル内の重複エントリを削除または検出するのに役立ちます。このチュートリアルでは、役立つと思われる最も頻繁に使用される uniq コマンド ライン オプションについて説明します。

次のテスト ファイルは、uniq コマンドの動作を理解するために、いくつかの例で使用されています。

$ cat test
aa
aa
bb
bb
bb
xx

1.基本的な使い方

構文:

$ uniq [-options]

たとえば、オプションなしで uniq コマンドを実行すると、重複する行が削除され、以下に示すように一意の行が表示されます。

$ uniq test
aa
bb
xx

2. -c オプションを使用して出現回数をカウント

このオプションは、ファイル内の行の出現をカウントします。

$ uniq -c test
      2 aa
      3 bb
      1 xx

3. -d オプションを使用して重複行のみを出力

このオプションは、ファイル内の重複した繰り返し行のみを印刷することです。以下に示すように、テスト ファイルで重複していないため、「xx」行は表示されませんでした。

$ uniq -d test
aa
bb

上記の例では、すべての重複行が表示されましたが、1 回だけ表示されました。ただし、この -D オプションは、ファイル内のすべての重複行を出力します。たとえば、行「aa」はテスト ファイルに 2 回あったため、次の uniq コマンドはこの出力に行「aa」を 2 回表示しました。

$ uniq -D test
aa
aa
bb
bb
bb

4. -u オプションを使用して一意の行のみを出力

このオプションは、ファイル内の一意の行のみを印刷することです。

$ uniq -u test
xx

特定のパターンを使用してファイルから重複行を削除したい場合は、sed delete コマンドを使用できます。

5. -w オプションを使用して比較を「N」文字に制限

このオプションは、比較を最初に指定された「N」文字のみに制限します。この例では、次の test2 入力ファイルを使用します。

$ cat test2
hi Linux
hi LinuxU
hi LinuxUnix
hi Unix

オプション「w」を使用した次の uniq コマンドは、ファイル内の行の最初の 8 文字を比較し、次に「c」オプションを使用して、ファイルの行の出現回数を出力します。

$ uniq -c -w 8 testNew
  3 hi Linux
  1 hi Unix

オプション「w」を使用した次の uniq コマンドは、ファイル内の行の最初の 8 文字を比較し、次に「D」オプションを使用して、ファイルのすべての重複行を出力します。

$ uniq -D -w 8 testNew
hi Linux
hi LinuxU
hi LinuxUnix

6. -s オプションを使用して最初の「N」文字を比較しない

このオプションは、最初に指定された「N」文字の比較をスキップします。この例では、次の test3 入力ファイルを使用します。

$ cat test3
aabb
xxbb
bbc
bbd

オプション「s」を使用した次の uniq コマンドは、ファイル内の行の最初の 2 文字の比較をスキップし、次に「D」オプションを使用すると、ファイルのすべての重複行を出力します。

ここで、最初の 2 文字、つまり 1 行目の「aa」と 2 行目の「xx」は比較されず、両方の行の次の 2 文字「bb」は同じであるため、重複した行として表示されます。

$ uniq -D -s 2 test3
aabb
xxbb

7. -f オプションを使用して最初の「N」フィールドを比較しない

このオプションは、ファイル内の行の最初に指定された「N」フィールドの比較をスキップします。

$ cat test2
hi hello Linux
hi friend Linux
hi hello LinuxUnix

オプション「f」を使用した次の uniq コマンドは、ファイル内の行の最初の 2 フィールドの比較をスキップし、次に「D」オプションを使用して、ファイルのすべての重複行を出力します。

ここで、最初の 2 つのフィールド、つまり 1 行目の「こんにちは」と 2 行目の「こんにちは友達」は比較されず、両方の行の次のフィールド「Linux」は同じであるため、重複した行として表示されます。

$ uniq -D -f 2 test2
hi hello Linux
hi friend Linux

Linux
  1. Linux での ln コマンドの例

  2. Linux での gzip コマンドの例

  3. Linux での head コマンドの例

  1. Linuxでのmvコマンド:7つの重要な例

  2. Linuxテールコマンドの例

  3. Linux での file コマンドの例

  1. Linuxwcコマンド

  2. Linux でのコマンド例

  3. Linuxコマンドを使用してプレーンテキストファイルから重複した単語を削除する方法