uniqコマンドについて詳しくまとめました 【Linuxコマンド集】

uniqコマンド
  • このエントリーをはてなブックマークに追加
  • Pocket

uniqはファイルから重複する行を削除するコマンドだ。

uniqはカタカナではユニークで、「唯一の」「1つしかない」という意味だ。

コンピュータの世界では「ユニークなデータ」は「重複していないデータ」を意味する。

uniqコマンドの基本

コマンドの基本動作

uniqコマンドで処理するファイルは、あらかじめ並べ替えされていなければならないので、sortコマンドなどで並べ替えをしておこう。

使い方は、次のとおりだ。

$ uniq 元ファイル名

ファイルs.datから重複行を削除する場合は、次のコマンドだ。

$ uniq s1.dat

uniqコマンド

ファイルs1.datから重複行が削除された内容が表示された。

出力ファイル名を指定して、結果を別ファイルに書き出すことも可能だ。

$ uniq 元ファイル名 出力先ファイル名

ファイルs.datから重複行を削除した結果をファイルs2.datに出力する場合は、次のコマンドだ。

$ uniq s1.txt s2.dat

uniqコマンド

ファイルs1.datから重複行が削除されたファイルがs2.datに記録され、その内容が表示された。

uniqコマンドのオプションたち

オプションの一覧

後から詳細をご紹介するが、まずは一覧で見てみよう。

オプション -c(オプション--count)

重複した行数も表示する。

オプション -d(オプション--repeated)

重複した行を表示する。

オプション -D(オプション--all-repeated)

重複した行をすべて表示する。

オプション -u(オプション--unique)

重複した行は一切表示しない。

オプション -f(オプション--skip-fields=N)

指定した項目以降で重複を判断する。

オプション -w(オプション--check-chars=N)

指定した文字数までで重複を判断する。

では一つずつ見ていこう。

-cオプション:(--countオプション):重複した行数も表示する

重複行を削除し、重複した行数も表示する書式は次のとおりだ。

$ uniq -c 元ファイル名

ファイルs1.datの重複行を削除し、重複した行数も表示する場合は、次のコマンドだ。

$ uniq -c s1.dat

uniqコマンド

ファイルs1.datの重複行が削除され、重複した行数が表示された。

-dオプション(--repeatedオプション):重複した行を表示する

重複した行のみを表示するオプションで書式は次の通りだ。

$ uniq -d 元ファイル名

ファイルs1.datの重複した行のみを表示する場合は、次のコマンドだ。

$ uniq -d s1.dat

uniqコマンド

ファイルs1.datの重複した行のみが表示された。

-Dオプション(--all-repeatedオプション):重複した行をすべて表示する

重複した行を1行だけではなく、すべての行を表示するオプションで、書式は次の通りだ。

$ uniq -D 元ファイル名

ファイルs1.datの重複した行をすべて表示する場合は、次のコマンドだ。

$ uniq -D s1.dat

uniqコマンド

ファイルs1.datの重複した行をすべてが表示された。

-uオプション(--uniqueオプション):重複した行は一切表示しない

重複した行は表示せず、重複しなかった行のみを表示するオプションで書式は次の通りだ。

$ uniq -u 元ファイル名

ファイルs1.txtの重複しなかった行のみを表示する場合は、次のコマンドだ。

uniqコマンド

ファイルs1.txtの重複しなかった行のみを表示した。

-fオプション(--skip-fields=Nオプション):指定した項目以降で重複を判断する

行全体ではなく、スペースやタブ文字で区切られた項目で重複を判断する。

書式は次の通りだ。

$ uniq -f 項目の位置 元ファイル名

1項目めは番号、2項目めは商品名、3項目めは単価、4項目めに売上個数が入力されているテキストファイルがある。

uniqコマンド

項目の位置は1少ない数字となり、1項目めなら0、3項目めなら2だ。

ファイルn1.txtの3項目め以降が重複していたら、重複行を削除するコマンドは次の通りだ。

$ uniq -f 2 n1.txt

uniqコマンド

ファイルn1.txtの3項目め以降が2行目と重複している3行目が削除された。

-wオプション(--check-chars=Nオプション):指定した文字数までで重複を判断する

-fオプションと併用して使うのが一般的だが、指定した文字数までで重複を判断する。

書式は次の通りだ。

$ uniq -f 項目の位置 -w 文字数 元ファイル名

文字数は指定したい文字数よりも1多い数字となる。

ファイルn1.txtの3項目めの1文字が重複していたら、重複行を削除するコマンドは次の通りだ。

$ uniq -f 2 -w 2 n1.txt

uniqコマンド

ファイルn1.txtの3項目めの1文字以降が1という文字で2行目と重複している3行め、4行めを削除した。

uniq関連コマンド

最後にuniqコマンドに関連して、基本的なテキスト処理のコマンドも紹介しておく。

sortコマンド

テキストファイルを並べ替えする。

cutコマンド

文字列を分離する。

まとめ

このページでは、uniqコマンドを使ったテキストファイルから重複行を削除のする方法を解説した。

ログやデータベースのデータを整理する時に活用できる。

簡単なコマンドなので覚えて活用しよう。

 

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメント

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する