对负小数排序

问题描述 投票:0回答:3

处理日志的处理格式如下:

# the system name: dG
MD_cluster10_1_300K: -34.48
MD_cluster11_1_300K: -40.31
MD_cluster1_1_300K: -40.23
MD_cluster2_1_300K: -37.86
MD_cluster3_1_300K: -25.65
MD_cluster5_1_300K: -11.91
MD_cluster6_1_300K: -0.50
MD_cluster8_1_300K: -16.62
MD_cluster9_1_300K: -15.26

我需要(忽略第一行)根据第二列中的值从最负到正对数据进行排序,并将其保存为新日志。

排序实用程序适用于这种情况吗?

sort -n ./file_unsorted > file_sorted
bash sorting decimal
3个回答
3
投票

命令:

grep -v '#' file_unsorted | sort -t ':' -k 2,2n > file_sorted

文件_未排序:

MD_cluster10_1_300K: -34.48
MD_cluster11_1_300K: -40.31
MD_cluster1_1_300K: -40.23
MD_cluster2_1_300K: -37.86
MD_cluster3_1_300K: -25.65
MD_cluster5_1_300K: -11.91
MD_cluster6_1_300K: -0.50
MD_cluster8_1_300K: -16.62
MD_cluster9_1_300K: -15.26

输出(文件排序):

MD_cluster11_1_300K: -40.31
MD_cluster1_1_300K: -40.23
MD_cluster2_1_300K: -37.86
MD_cluster10_1_300K: -34.48
MD_cluster3_1_300K: -25.65
MD_cluster8_1_300K: -16.62
MD_cluster9_1_300K: -15.26
MD_cluster5_1_300K: -11.91
MD_cluster6_1_300K: -0.50

1
投票

也检查一下:

tail -n +2 log.txt | sort -t ':' -k 2 -n > new_log.txt

输出

$ cat new_log.txt

MD_cluster11_1_300K: -40.31
MD_cluster1_1_300K: -40.23
MD_cluster2_1_300K: -37.86
MD_cluster10_1_300K: -34.48
MD_cluster3_1_300K: -25.65
MD_cluster8_1_300K: -16.62
MD_cluster9_1_300K: -15.26
MD_cluster5_1_300K: -11.91
MD_cluster6_1_300K: -0.50

0
投票

您可以使用以下命令来获取结果:

sort -k 2n file_unsorted.log > file_sorted.log

代码_演示

© www.soinside.com 2019 - 2024. All rights reserved.