Linuxのtxtファイルで文字列に関連付けられたIPソート

Linuxのtxtファイルで文字列に関連付けられたIPソート

誰かが関連付けられたIP文字列を含む.txtファイル内のIPを数字で並べ替えるのに役立ちますか?

txt内容:

string_A=10.a.y.155
string_B=10.a.y.212
string_C=10.a.y.104
string_D=10.a.y.10
string_E=10.a.y.198
string_U=10.b.x.155
string_V=10.b.x.212
string_X=10.b.x.104
string_Y=10.b.x.10
string_Z=10.b.x.198

私が望む出力:

10.a.x._ series in sorted way.

string_D=10.a.y.10
string_C=10.a.y.104
string_A=10.a.y.155
string_E=10.a.y.198
string_B=10.a.y.212

当社のデータポリシーにより、元の値を公開できるかどうかはわかりません。したがって、これらのダミー値を代わりに使用してください。

答え1

-V(「バージョン順」)を使用して、ほとんどの実装は次のようになりますsort

$ sort -t '=' -k2 -V file
string_D=10.a.y.10
string_C=10.a.y.104
string_A=10.a.y.155
string_E=10.a.y.198
string_B=10.a.y.212
string_Y=10.b.x.10
string_X=10.b.x.104
string_U=10.b.x.155
string_Z=10.b.x.198
string_V=10.b.x.212

場合a=15b=140

$ sort -t '=' -k2 -V file
string_D=10.15.y.10
string_C=10.15.y.104
string_A=10.15.y.155
string_E=10.15.y.198
string_B=10.15.y.212
string_Y=10.140.x.10
string_X=10.140.x.104
string_U=10.140.x.155
string_Z=10.140.x.198
string_V=10.140.x.212

with-k2を使用すると、後続のデータがソートキーとして扱われます。-t '='sort=

答え2

使用sortコマンド:

sort -t'=' -k2 file
  • -t'='=- フィールド区切り文字として使用されるシンボル

  • -k2- 2番目のフィールドでソート

出力:

string_D=10.a.y.10
string_C=10.a.y.104
string_A=10.a.y.155
string_E=10.a.y.198
string_B=10.a.y.212
string_Y=10.b.x.10
string_X=10.b.x.104
string_U=10.b.x.155
string_Z=10.b.x.198
string_V=10.b.x.212

答え3

使用:

sort -t. -nk1,1 -nk2,2 -nk3,3 -nk4,4 file

-n- 数字で並べ替え

ソートする必要があります4つの分野それぞれ

関連情報