0

我有一个看起来像这样的数据日志文件(比如,log.dat)(一个玩具示例):

s('2','3') 102.3993 2992 0.22 0.33
s('4','6') 105.44 2993 0.43 0.93
s('19','33') 99.93 28992 0.99 0.29
....(类似模式)

我想使用 bash shell 或 python 按第二个字段对数据日志文件进行排序。这意味着输出文件如下所示:

s('19','33') 99.93 28992 0.99 0.29
s('2','3') 102.3993 2992 0.22 0.33
s('4','6') 105.44 2993 0.43 0.93

如何使用 shell 脚本或 python 来做到这一点?也许最好附加一个尾字段来指示每行的排名(1,2,3,...)最终目标是通过第二个字段在 gnuplot 中绘制日志文件

4

2 回答 2

2

在 bash 命令行中,尝试sort(1)命令:

$ sort -k2,2 -n -o log.dat log.dat
于 2013-03-19T14:03:49.860 回答
1

试试这个:

$ sort -k2 -n inputFile > outputFile

在哪里:

  • -n, --numeric-sort 根据字符串数值进行比较
  • -k, --key=POS1[,POS2] 在 POS1(原点 1)开始一个键,在 POS2 结束它(默认行尾)

NB -t, --field-separator=SEP 使用 SEP 而不是非空白到空白的过渡,因此我们使用默认字段分隔符

于 2013-03-19T14:06:04.850 回答