逆引きUNIXコマンド/ファイル内のユニーク文字列を取得する
の編集
Top
/
逆引きUNIXコマンド
/
ファイル内のユニーク文字列を取得する
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * ファイル内のユニークな(重複のない)文字列を取得する(sort, uniq) [#w280f7ed] ファイル内から重複する行を削除し、ユニークな文字列のみを取得するには、''sort'' コマンドと ''uniq'' コマンドを組み合わせて利用します。 ''uniq'' コマンドは「直前の行と連続して重複している行」を1行にまとめる性質があります。~ そのため、あらかじめ ''sort'' コマンドで同じ文字列の行を並び替えてから ''uniq'' コマンドに渡すことで、~ ファイル全体の重複を完全に排除することができます。 ''■目次'' #contents #htmlinsert(linux_ads_top.html) * コマンドの基本構文と実行例 [#gbbae375] 以下は、data.txt というファイルから重複を除いたユニークな行を取得する例です。 実務ではどちらの方法もよく使われますが、通常はパイプ(''|'')が1つで済む1番目の方法がシンプルで推奨されます。 ** 1. 最もスマートな方法(sort -u) ''推奨'' [#h3c0eaea] ''sort'' コマンドの ''-u''(unique)オプションを使うと、ソートと重複排除を1つのコマンドだけで同時に実行できます。~ パイプ(''|'')を使わないため、最も処理が高速でスマートな書き方です。 sort -u data.txt ** 2. パイプで繋ぐ標準的な方法 [#c66045ab] 一度 ''sort'' で並び替えた結果を、パイプを介して ''uniq'' に渡す方法です。 sort data.txt | uniq ** 3. catでファイルを開いてから渡す方法 [#ed2d7086] cat data.txt | sort | uniq ※動作は同じですが、無駄なコマンド(cat)やパイプが増えるため、大きなファイルを処理する際は上記の「1」や「2」の方法が推奨されます。 ** (応用)結果を別ファイルに保存したい場合 [#a9a95675] リダイレクト(''>'')を使って、重複を排除した結果を新しいファイル(result.txt)に保存できます。 sort -u data.txt > result.txt * 実行結果の例 [#q4e42062] 元となるデータファイル(data.txt)の中身と、コマンドを実行した結果の比較です。 ** 元データ(data.txt)の中身 [#k5b60bad] $ cat data.txt RED GREEN BLUE RED RED PINK YELLOW GRAY GREEN YELLOW BLUE ** コマンド実行結果(アルファベット順にソートされ、重複が消える) [#w12a81cf] $ sort -u data.txt BLUE GRAY GREEN PINK RED YELLOW * サマリー(まとめ) [#summary] - '''目的''': ファイル内の重複した行を排除し、1行ずつのユニークな文字列一覧を取得する。 - '''仕組み''': uniq コマンドは連続した重複しか削除できないため、事前に sort コマンドで同じ文字列を隣り合わせにする必要がある。 - '''基本コマンド''': sort [ファイル名] | uniq - '''便利なオプション''': -- sort -u [ファイル名] と実行するだけでも、内部でソートと重複排除(uniq相当)を同時に行ってくれるため、こちらも合わせて覚えておくと便利です。 * 最後に [#nc9aff37] Linuxのテキスト処理において、sort と uniq の組み合わせは、ログファイルの解析やデータのクレンジングなど、実務のあらゆる場面で頻出する最も基本かつ強力なテクニックの一つです。~ 最初はパイプ(''|'')を使った組み合わせに戸惑うかもしれませんが、それぞれのコマンドの役割(「並び替える」と「連続した重複を消す」)を意識すると、仕組みがすんなりと理解できるようになります。~ この基本をマスターすれば、大規模なデータから必要な情報だけを瞬時に抽出できるようになり、作業効率が劇的にアップします。ぜひコマンドを実際に叩いて、その便利さを体感してみてください!~
タイムスタンプを変更しない
#navi(../) * ファイル内のユニークな(重複のない)文字列を取得する(sort, uniq) [#w280f7ed] ファイル内から重複する行を削除し、ユニークな文字列のみを取得するには、''sort'' コマンドと ''uniq'' コマンドを組み合わせて利用します。 ''uniq'' コマンドは「直前の行と連続して重複している行」を1行にまとめる性質があります。~ そのため、あらかじめ ''sort'' コマンドで同じ文字列の行を並び替えてから ''uniq'' コマンドに渡すことで、~ ファイル全体の重複を完全に排除することができます。 ''■目次'' #contents #htmlinsert(linux_ads_top.html) * コマンドの基本構文と実行例 [#gbbae375] 以下は、data.txt というファイルから重複を除いたユニークな行を取得する例です。 実務ではどちらの方法もよく使われますが、通常はパイプ(''|'')が1つで済む1番目の方法がシンプルで推奨されます。 ** 1. 最もスマートな方法(sort -u) ''推奨'' [#h3c0eaea] ''sort'' コマンドの ''-u''(unique)オプションを使うと、ソートと重複排除を1つのコマンドだけで同時に実行できます。~ パイプ(''|'')を使わないため、最も処理が高速でスマートな書き方です。 sort -u data.txt ** 2. パイプで繋ぐ標準的な方法 [#c66045ab] 一度 ''sort'' で並び替えた結果を、パイプを介して ''uniq'' に渡す方法です。 sort data.txt | uniq ** 3. catでファイルを開いてから渡す方法 [#ed2d7086] cat data.txt | sort | uniq ※動作は同じですが、無駄なコマンド(cat)やパイプが増えるため、大きなファイルを処理する際は上記の「1」や「2」の方法が推奨されます。 ** (応用)結果を別ファイルに保存したい場合 [#a9a95675] リダイレクト(''>'')を使って、重複を排除した結果を新しいファイル(result.txt)に保存できます。 sort -u data.txt > result.txt * 実行結果の例 [#q4e42062] 元となるデータファイル(data.txt)の中身と、コマンドを実行した結果の比較です。 ** 元データ(data.txt)の中身 [#k5b60bad] $ cat data.txt RED GREEN BLUE RED RED PINK YELLOW GRAY GREEN YELLOW BLUE ** コマンド実行結果(アルファベット順にソートされ、重複が消える) [#w12a81cf] $ sort -u data.txt BLUE GRAY GREEN PINK RED YELLOW * サマリー(まとめ) [#summary] - '''目的''': ファイル内の重複した行を排除し、1行ずつのユニークな文字列一覧を取得する。 - '''仕組み''': uniq コマンドは連続した重複しか削除できないため、事前に sort コマンドで同じ文字列を隣り合わせにする必要がある。 - '''基本コマンド''': sort [ファイル名] | uniq - '''便利なオプション''': -- sort -u [ファイル名] と実行するだけでも、内部でソートと重複排除(uniq相当)を同時に行ってくれるため、こちらも合わせて覚えておくと便利です。 * 最後に [#nc9aff37] Linuxのテキスト処理において、sort と uniq の組み合わせは、ログファイルの解析やデータのクレンジングなど、実務のあらゆる場面で頻出する最も基本かつ強力なテクニックの一つです。~ 最初はパイプ(''|'')を使った組み合わせに戸惑うかもしれませんが、それぞれのコマンドの役割(「並び替える」と「連続した重複を消す」)を意識すると、仕組みがすんなりと理解できるようになります。~ この基本をマスターすれば、大規模なデータから必要な情報だけを瞬時に抽出できるようになり、作業効率が劇的にアップします。ぜひコマンドを実際に叩いて、その便利さを体感してみてください!~
テキスト整形のルールを表示する