按一列排序行,然后按 IP 地址列排序
sort lines by one colum and then by column with IP addresses
输入列表是:
10.190.30.41 ENV-DEFAPP-T01
10.190.30.9 ENV-UATDB-T01
10.190.30.38 ENV-DEFDB-T01
10.190.30.36 ENV-DEFDB-T01
10.190.30.10 ENV-UATDB-T01
10.190.30.133 ENV-DEFDB-T01
10.190.30.37 ENV-DEFDB-T01
10.190.30.40 ENV-DEFAPP-T01
10.190.30.39 ENV-DEFDB-T01
10.190.30.37 ENV-GHIAPP-T01
10.190.30.132 ENV-DEFDB-T01
10.190.30.40 ENV-DEFDB-T01
10.190.31.7 ENV-GHIAP-T01
10.190.31.7 ENV-DEFDB-T01
10.190.30.132 ENV-DEFAPP-T01
10.190.30.41 ENV-DEFDB-T01
10.190.30.36 ENV-GHIMO-T01
10.190.30.42 ENV-UATNFS-T01
10.190.30.39 ENV-DEFAPP-T01
10.190.30.133 ENV-GHIAPP-T01
10.190.30.36 ENV-DEFAPP-T01
10.190.31.8 ENV-GHIDB-T01
10.190.30.38 ENV-GHIAPP-T01
我想在第一步中使用 GNU sed 按第 2 列和第 1 列(IP 地址)对其进行排序。
当我使用 -k2 -k1 排序时,第一列排序不正确(按每个 ENV 中的增量 IP):
$ cat input|tr -s ' '|sort -k2 -k1|column -ts" " --
10.190.30.132 ENV-DEFAPP-T01
10.190.30.36 ENV-DEFAPP-T01
10.190.30.39 ENV-DEFAPP-T01
10.190.30.40 ENV-DEFAPP-T01
10.190.30.41 ENV-DEFAPP-T01
10.190.30.132 ENV-DEFDB-T01
10.190.30.133 ENV-DEFDB-T01
10.190.30.36 ENV-DEFDB-T01
10.190.30.37 ENV-DEFDB-T01
10.190.30.38 ENV-DEFDB-T01
10.190.30.39 ENV-DEFDB-T01
10.190.30.40 ENV-DEFDB-T01
10.190.30.41 ENV-DEFDB-T01
10.190.31.7 ENV-DEFDB-T01
10.190.30.133 ENV-GHIAPP-T01
10.190.30.37 ENV-GHIAPP-T01
10.190.30.38 ENV-GHIAPP-T01
10.190.31.7 ENV-GHIAP-T01
10.190.31.8 ENV-GHIDB-T01
10.190.30.36 ENV-GHIMO-T01
10.190.30.10 ENV-UATDB-T01
10.190.30.9 ENV-UATDB-T01
10.190.30.42 ENV-UATNFS-T01
将 IP 地址排序为“版本”
sort -k2 -k1V
输入列表是:
10.190.30.41 ENV-DEFAPP-T01
10.190.30.9 ENV-UATDB-T01
10.190.30.38 ENV-DEFDB-T01
10.190.30.36 ENV-DEFDB-T01
10.190.30.10 ENV-UATDB-T01
10.190.30.133 ENV-DEFDB-T01
10.190.30.37 ENV-DEFDB-T01
10.190.30.40 ENV-DEFAPP-T01
10.190.30.39 ENV-DEFDB-T01
10.190.30.37 ENV-GHIAPP-T01
10.190.30.132 ENV-DEFDB-T01
10.190.30.40 ENV-DEFDB-T01
10.190.31.7 ENV-GHIAP-T01
10.190.31.7 ENV-DEFDB-T01
10.190.30.132 ENV-DEFAPP-T01
10.190.30.41 ENV-DEFDB-T01
10.190.30.36 ENV-GHIMO-T01
10.190.30.42 ENV-UATNFS-T01
10.190.30.39 ENV-DEFAPP-T01
10.190.30.133 ENV-GHIAPP-T01
10.190.30.36 ENV-DEFAPP-T01
10.190.31.8 ENV-GHIDB-T01
10.190.30.38 ENV-GHIAPP-T01
我想在第一步中使用 GNU sed 按第 2 列和第 1 列(IP 地址)对其进行排序。
当我使用 -k2 -k1 排序时,第一列排序不正确(按每个 ENV 中的增量 IP):
$ cat input|tr -s ' '|sort -k2 -k1|column -ts" " --
10.190.30.132 ENV-DEFAPP-T01
10.190.30.36 ENV-DEFAPP-T01
10.190.30.39 ENV-DEFAPP-T01
10.190.30.40 ENV-DEFAPP-T01
10.190.30.41 ENV-DEFAPP-T01
10.190.30.132 ENV-DEFDB-T01
10.190.30.133 ENV-DEFDB-T01
10.190.30.36 ENV-DEFDB-T01
10.190.30.37 ENV-DEFDB-T01
10.190.30.38 ENV-DEFDB-T01
10.190.30.39 ENV-DEFDB-T01
10.190.30.40 ENV-DEFDB-T01
10.190.30.41 ENV-DEFDB-T01
10.190.31.7 ENV-DEFDB-T01
10.190.30.133 ENV-GHIAPP-T01
10.190.30.37 ENV-GHIAPP-T01
10.190.30.38 ENV-GHIAPP-T01
10.190.31.7 ENV-GHIAP-T01
10.190.31.8 ENV-GHIDB-T01
10.190.30.36 ENV-GHIMO-T01
10.190.30.10 ENV-UATDB-T01
10.190.30.9 ENV-UATDB-T01
10.190.30.42 ENV-UATNFS-T01
将 IP 地址排序为“版本”
sort -k2 -k1V