概要
sort -u は、入力されたデータを昇順にソートしながら、同時に重複した行を一つだけ残してすべて削除します。これはログファイルの分析、一意の項目リストの生成、データクリーニングなど、さまざまな状況で活用されます。
主な特徴
- データをソートし、重複した行を自動的に削除
- パイプ(|)を通じて他のコマンドの出力と連携可能
- 数値、特定のフィールドなど、さまざまなソート基準をサポート
- 大容量ファイル処理の効率性
主なオプション
sort コマンドのさまざまなオプションのうち、-u と一緒に頻繁に使用されるものや、sort -u の動作を補完するオプションを紹介します。
重複削除と基本動作
ソート基準
出力とその他
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`sort` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
sort -u コマンドのさまざまな活用例を通じて、実際の使い方を習得しましょう。
ファイル内容のソートと重複削除
sort -u file.txt
file.txt の内容をソートし、重複した行を削除して標準出力に表示します。
パイプを通じた入力処理
cat file.txt | sort -u
他のコマンドの出力を受け取り、ソートして重複を削除します。例えば、`cat` コマンドでファイル内容を渡します。
数値基準でのソートと重複削除
sort -nu numbers.txt
numbers.txt ファイルの数値を数値として認識してソートし、重複を削除します。
特定のフィールド基準でのソートと重複削除
sort -t',' -uk2 data.csv
カンマ(`,`)で区切られた data.csv ファイルの2番目のフィールドを基準にソートし、重複を削除します。
結果を新しいファイルに保存
sort -u input.txt -o output.txt
ソートおよび重複削除された結果を output.txt ファイルに保存します。
ヒントと注意点
sort -u コマンド使用時の役立つヒントと注意点を案内します。
sort -u と uniq の違い
- sort -u: 入力全体をソートした後に重複を削除します。そのため、ファイル内のどこにあってもすべての重複を削除します。
- uniq: 隣接する行の重複のみを削除します。`uniq` を使用するには、まず `sort` コマンドでデータをソートする必要があります。`sort -u` はこの2つのプロセスを一度に処理する便利な方法です。
大文字・小文字の区別
- 基本動作: sort -u はデフォルトで大文字・小文字を区別し、「Apple」と「apple」を異なる行として扱います。
- 大文字・小文字の無視: 大文字・小文字を無視して重複を削除するには、`-f` (fold-case) オプションを一緒に使用してください。例: `sort -uf file.txt`
大容量ファイル処理のパフォーマンス
- メモリ使用量: 大容量ファイルを処理する際、sort はシステムメモリを多く使用する可能性があります。`-S` オプションで、使用するメモリバッファサイズを指定してパフォーマンスを調整できます。(例: `-S 50%` は使用可能なメモリの 50% を使用)
- 一時ファイル: メモリが不足している場合、sort は一時ファイルを生成します。`-T` オプションで一時ファイルを保存するディレクトリを指定できます。(例: `-T /tmp`)