2

我编写了一个 shell 脚本来获取名称、search_id 和时间。我想根据 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

你能帮忙吗。非常感谢

4

2 回答 2

1

sort -k 2,2n应该管用。我已经在下面进行了测试。这里的 n 表示数字排序。

> 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
>
于 2013-10-04T11:18:40.707 回答
1

您似乎正在寻找以下-s选项sort

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

以你为例:

$ sort -s -k 2,2 inputfile
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
于 2013-10-04T10:59:33.433 回答