FC2ブログ

重複行を整理する sort と uniq コマンド

今回、日経Linux 2008-9 におもしろい記事が載っていたので
実験してみました




とはいっても、簡単なコマンドの組み合わせですが

今回、使用したコマンドは

重複行を削除するコマンド uniq コマンド
107.uniqコマンドについてにわかりやすい説明が載っています)

そして
ファイルの行を並び替える sortコマンド
(【 sort 】 行を並び替えるが参考になります)

を使っています

最初に、
vi travel.txt
で内容を作成します

内容は単純に、国の名前を適当に並べたものです
アメリカ
イギリス
フランス
ドイツ
中国
インド
ロシア
日本
アメリカ
シンガポール
ドイツ
フランス
アメリカ
中国


などというように、適当に書き込みます

これに
$ uniq travel.txt
と実行すると
隣り合った部分が削除されて画面に表示されます

ただし、元のファイルはそのままです

これをさらに、sort コマンドと組み合わせると
重複する文字を削除できるようになります

$ sort travel.txt | uniq
これで、重複する文字を削除して表示できます

ちなみに、削除だけなら、sortコマンドに -u オプションをつければできます
$sort -u travel.txt
これでOKです

uniq コマンドは、削除するより、重複した文字をカウントする機能
を使うことがメインとなりそうです
-c オプションをつけると、この機能が使えます

$ sort travel.txt | uniq -c | sort -nr
とすれば、重複した文字の多い順番に並べれます

さらに。
$ sort travel.txt | uniq -c | sort -nr | head -n 5
とすれば、上位3つまで表示するようにできます

この機能を応用すると、アンケートや選挙のようなことができそうです

スポンサーサイト



テーマ : Linux
ジャンル : コンピュータ

コメント

非公開コメント

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック