【Linuxコマンド】sortコマンドの使い方
はじめに
こちらの記事ではLinuxコマンドの一種であるsortコマンドの使い方を解説いたします。
またsortコマンドに類したcutコマンドの使い方も解説いたします。
sortコマンドとは?
sortコマンドは以下のように記述します。
$sort オプション名 ファイル名
テキストファイルを“行単位で並べ替える”コマンドです。
他のコマンドの実行結果を並べ替える場合にも使用できます。
また、空白やカンマ区切りのデータに対し、並べ替えに使用するフィールドを指定することも可能です。
テキストの数字を並び替える
実行前:sample01.txtに記述されている100、50、10を並び替えます。
実行後:下記の通り、1文字目の数字を基準に10、100、50と昇順されます。
テキストの文字列を並び替える
実行前:sample02.txtに記述されている文字列(BBB、AAA、CCC)を並び替えます。
実行後:下記の通り、文字列の場合はAAA、BBB、CCCとアルファベット順に並び変わります。
-nオプション(--numeric-sort):数値として並べ替える
実行前:sample01.txtに記述されている100、50、10を並べ替えます。
実行後:下記の通り、数値の1文字目ではなく数値の値として10、50、100と並び変わります。
-rオプション(--reverse):降順で並べ替える
実行前:sample01.txtに記述されている数値をソートします。
実行後:単体で-rオプションを使うと1文字目の数字を基準に降順されます。
-rオプションと-nオプションを組み合わせて降順で並べ替える
実行後:-nオプションと組み合わせて使うことで数値の値を降順で120、100、50、10とソートされます。
-tオプション(区切り文字を指定)と-k(ソートキーを指定)を組み合わせ
実行前::(コロン)で区切った2番目の数値を基準にソートします。
実行後:下記の通り、BBB:10、AAA:200、DDD:30、CCC:450と1文字目の数字として昇順しています。
-t、-k、-nの組み合わせ
実行前::(コロン)で区切った2番目の数値を基準にソートします。
実行後:下記の通り、BBB:10、DDD:30、AAA:200、CCC:450と数値の値として昇順しています。
-t、-k、-rの組み合わせ
実行前::(コロン)で区切った2番目の数値を基準にソートします。
実行後:下記の通り、CCC:450、DDD:30、AAA:200、BBB:10と1文字目の数字として降順しています。
-uオプション:重複した行はソートしない
実行前:sample03.txtに記述されているCCC:450と重複した行を除いてソートします。
実行後:下記の通り、重複していた行、CCC:450を除いてソートします。
cutコマンドとは?
cutコマンドは以下のように記述します。
$cut オプション名 ファイル名
テキストファイルに記述されている内容を指定した位置から取得できるコマンドです。
データが記述されたファイルから、指定した範囲の値を取り出すときなどに便利です。
-bオプション:切り出す位置をバイト数を指定する
実行前:sample04.txtに記述されている文字列や数字をバイト数を指定します。
実行後:下記の通り、2バイト目の文字(26BF)を出力しています。
-bオプション:切り出す位置をハイフン(-)で指定する
実行前:sample04.txtに記述されている文字列や数字をハイフン(-)で指定します。
実行後:下記の通り、2バイト目から4バイト目までの文字・数字を出力しています。
-dオプション(区切り文字を指定する)と-fオプション(必要な項目を項目数で指定する)を組み合わせ
実行前:sample05.txtに記述されている文字列(AAA、BBB、CCC、DDD)を,(コンマ)で区切り指定します。
実行後:下記の通り、-dオプションで,(コンマ)で区切り、-fオプションで1項目を指定しています。
-fオプション:必要な項目数をハイフン(-)で指定する
実行後:下記の通り、-fオプションで1項目から2項目を指定しています。
-cオプション:文字開始位置-終了位置を指定する
実行後:下記の通り、-cオプションで1文字目から10文字目までを指定しています。
まとめ
以上がsortコマンド、cutコマンドの基本的な使い方と複数のオプションの組み合わせ方について解説しました。
用途は沢山ありますが、膨大に存在するテキストファイルの中から情報採取する際、効率的に調査が可能です。
テキストファイルの中身によっては何行、何十行にも書かれている中からキーワードを取り出す場合、様々なオプションを併用することで簡単に指定の文字列・数値を検索することができます。
この記事が読んでいただいた皆様の助けになれば幸いです。ありがとうございました。