Skip to main content

Linuxでファイルにデータをソートする方法

The mind behind Linux | Linus Torvalds (六月 2025)

The mind behind Linux | Linus Torvalds (六月 2025)
Anonim

前書き

このガイドでは、デリミタ付きファイルと他のコマンドの出力からデータをソートする方法を説明します。

このタスクを実行するために使用するコマンドが「ソート」と呼ばれていることに驚くことはありません。この記事では、sortコマンドの主要なスイッチがすべて提供されます。

サンプルデータ

ファイル内のデータは、何らかの方法で区切られていればソートすることができます。

例えば、去年のスコットランドプレミアリーグからの最終リーグテーブルをとり、そのデータを "spl"というファイルに保存しましょう。

1つのクラブとそのクラブのデータを各行にカンマで区切って、次のようにデータファイルを作成できます。

チーム得点目標ポイント
ケルト語933186
アバディーン624871
ハーツ594065
セントジョンストン585556
マザーウェル476350
ロス郡556148
インヴァネス544852
ダンディー535748
パートディック415046
ハミルトン426343
キルマーノック416436
ダンディー・ユナイテッド457028

ファイル内のデータを並べ替える方法

そのテーブルから、あなたはセルティックがリーグを獲得し、ダンディー・ユナイテッドが最後に来たことが分かります。あなたがダンディー・ユナイテッドのファンなら、自分の気持ちを良くしたいかもしれないし、得点でソートすることでこれを行うことができます。

これを行うには、次のコマンドを実行します。

sort -k2 -t、spl

今度は次のようになります:

  • パートディック
  • キルマーノック
  • ハミルトン
  • ダンディー・ユナイテッド
  • マザーウェル
  • ダンディー
  • インヴァネス
  • ロス郡
  • セントジョンストン
  • ハーツ
  • アバディーン
  • ケルト語

結果がこの順序になっているのは、列2が目標得点列であり、ソートが最低から最高になるためです。

-kスイッチを使用すると、並べ替える列を選択できます。また、-tスイッチを使用すると、区切り文字を選択できます。

ダンディー・ユナイテッドのファンは、自分自身を本当に幸せにするために、次のコマンドを使用して列4でソートできます。

sort -k4 -t、spl

ダンディー・ユナイテッドがトップで、ケルトは最下位にいる。

もちろん、これはセルティックとダンディーの両方のファンを本当に不幸にさせるでしょう。物事を正しく置くために、次のスイッチを使って逆の順序で並べ替えることができます:

sort -k4 -t、-r spl

やや奇妙なスイッチでは、ランダムに並べ替えることができ、実際にはデータの列を混乱させるだけです。

次のコマンドを使用してこれを行うことができます:

sort -k4 -t、-R spl

-rスイッチと-Rスイッチを混在させると、実際の問題を引き起こす可能性があります。

sortコマンドは日付を月順に並べ替えることもできます。次の表を見てください:

使用されたデータ
1月4G
2月3000K
行進6000K
4月100M
5月5000M
六月200K
7月4000K
8月2500K
9月3000K
10月1000K
11月3G
12月2G

上記の表は、年の月とモバイルデバイスで使用されるデータの量を表しています。

次のコマンドを使用して日付をアルファベット順に並べ替えることができます。

sort -k1 -t、datausedlist

また、次のコマンドを使用して月単位でソートすることもできます。

sort -k1 -t、-M datausedlist

明らかに上記の表は既に月順に表示されていますが、リストにランダムに入力されていれば、単純なソート方法になります。

2番目の列を見ると、すべての値が人間が判読可能な形式で表示され、並べ替えが簡単ではないように見えますが、sortコマンドは次のコマンドを使用して、

sort -k2 -t、-h datausedlist

他のコマンドから渡されたデータをソートする方法

ファイル内のデータのソートは便利ですが、sortコマンドを使用して他のコマンドの出力をソートすることもできます:

たとえば、lsコマンドを見てみましょう。

ls -lt

上記のコマンドは、各ファイルを1行のデータとして返し、次のフィールドを列に表示します。

  • 許可
  • ノードカウント
  • ユーザー名
  • グループ名
  • サイズ
  • 最終アクセス日
  • ファイル名

次のコマンドを実行して、ファイルサイズでリストを並べ替えることができます。

ls -lt |ソート-k5

結果を逆の順序で取得するには、次のコマンドを使用します。

ls -lt | sort -k5 -r

sortコマンドは、システム上で実行中のプロセスを一覧表示するpsコマンドと組み合わせて使用​​することもできます。

たとえば、システムで次のpsコマンドを実行します。

ps -eF

上記のコマンドは、システム上で現在実行されているプロセスに関する多くの情報を返します。

これらの列の1つはサイズであり、どのプロセスが最大であるかを知りたい場合があります。

このデータをサイズ別にソートするには、次のコマンドを使用します。

ps -eF |ソート-k5

概要

sortコマンドにはそれほど多くはありませんが、他のコマンドからの出力を意味のある順序に並べ替えるとき、特にコマンドに独自の並べ替えスイッチがない場合は非常に便利です。

詳細については、sortコマンドのマニュアルページを参照してください。