有人可以帮助我从包含与其关联的 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=15
并且b=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
the之后的数据视为排序键。-t '='
sort
=
答案2
使用sort
命令:
sort -t'=' -k2 file
-t'='
-=
作为字段分隔符的符号-k2
- 按第二个字段排序
输出:
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
- 按数字排序
您需要排序四个字段中的每一个。