如何使用shell脚本根据文件第2列中的值对值进行排序?

时间:2013-10-04 10:49:25

标签: shell unix awk

我写了一个shell脚本来获取name,search_id和time。我想在search_id上对值进行排序。我的意思是我想缩短第二栏。我写下了轰鸣声剧本。

$LOGFILE | sort -k 2,2 > ssss.csv 

$LOGFILE | sort -k 2,2 > ssss.csv对第一列和第二列进行排序。但我只想排序第二列

我想要的是,如果我将此作为我的输入文件 我的意见

 aaa, 123, 12:23
 dsd, 123, 12.43
 sds, 234, 12.45
 sds, 345, 12.47
 sde, 233, 13.34
 dfg, 234, 13.45
 fgh, 236, 14.65

预期产出

 aaa, 123, 12:23
 dsd, 123, 12.43
 sde, 233, 13.34
 sds, 234, 12.45
 dfg, 234, 13.45
 fgh, 236, 14.65
 sds, 345, 12.47

你能帮忙吗?非常感谢

2 个答案:

答案 0 :(得分:1)

您好像在寻找-s的{​​{1}}选项:

sort

对于你的例子:

   -s, --stable
          stabilize sort by disabling last-resort comparison

答案 1 :(得分:1)

sort -k 2,2n应该有效。我在下面进行了测试。 这里的数字意味着数字排序。

> cat temp
aaa 123 12:23
dsd 123 12.43
sds 234 12.45
sds 345 12.47
sde 233 13.34
dfg 234 13.45
fgh 236 14.65
> sort -k 2,2n temp
aaa 123 12:23
dsd 123 12.43
sde 233 13.34
dfg 234 13.45
sds 234 12.45
fgh 236 14.65
sds 345 12.47
>