sort 概要
`sort` コマンドは基本的に各行を全体的に比較し、ASCII文字順(辞書順)でソートした後、標準出力に結果を送ります。元のファイルは変更されず、変更内容をファイルに保存するにはリダイレクト(`>`)を使用する必要があります。
sortの主要な役割
`sort` コマンドは主に次の目的で使用されます:
主要活用分野
- データソート: ログファイル、データリスト、ユーザーリストなどを特定の基準でソートして可読性を向上させます。
- 重複除去: ソートされたデータに基づいて重複行を簡単に除去できます。(`uniq`と併用)
- レポート生成: 特定のフィールドを基準にデータをソートし、分析しやすい形にします。
- ファイル比較: 2つのファイルの内容をソートして比較する前に正規化するのに使用できます。
ソート方式の基本原理
`sort`は基本的に各行の最初の文字から始め、文字コード値(ASCII値)に基づいて比較します。数字の場合も文字列として扱われるため、'10'が'2'よりも前に来るなどの予期しない結果が出ることがあります。これを防ぐためには数字ソートオプションを使用する必要があります。
主要 sort コマンドオプション
`sort` コマンドはさまざまなオプションを提供し、ソート基準、順序、重複処理などを詳細に制御できます。
1. ソート基準および順序
2. 重複および空白処理オプション
3. 出力および区切り文字オプション
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`sort` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
`sort` コマンドのさまざまな活用例を通じてテキストデータを効率的にソートし、分析する方法を学びましょう。
ファイル内容基本ソート
echo -e "Charlie\nAlice\nBob" > names.txt
sort names.txt
`names.txt` ファイルの行をアルファベット順(昇順)でソートして出力します。
ファイル内容逆順(降順)ソート
echo -e "10\n2\n100" > numbers.txt
sort -r numbers.txt
`numbers.txt` ファイルの数字を文字列として考え、逆順でソートします。
数字値基準でソート
echo -e "20 Bob\n10 Alice\n100 Charlie" > scores.txt
sort -n scores.txt
`scores.txt` ファイルのスコア(第一フィールド)を実際の数字値基準で昇順ソートします。
CSVファイルの第二カラム(名前)基準でソート
echo -e "1,Bob,Seoul\n3,Alice,Busan\n2,Charlie,Jeju" > users.csv
sort -t',' -k 2 users.csv
カンマ(`,`)で区切られた `users.csv` ファイルから第二フィールド(名前)を基準にソートします。
ソート後重複行除去
echo -e "apple\nbanana\napple\ncherry" > duplicates.txt
sort -u duplicates.txt
`duplicates.txt` ファイルの内容をソートした後、重複する行を1つだけ残して除去します。
ソート結果を新ファイルに保存
echo -e "Zebra\nCat\nDog" > unsorted.txt
sort unsorted.txt -o sorted.txt
`unsorted.txt` ファイルの内容をソートした後、その結果を `sorted.txt` ファイルに保存します。元のファイルは変更されません。
人間可読型サイズでソート
echo -e "10K file1\n2M file2\n500K file3\n1G file4" > sizes.txt
sort -h sizes.txt
ファイルサイズリストを人間可読型単位(K, M, G)を考慮してソートします。`du -h` などの結果をソートする際に便利です。