Awk 如何按升序(列)对文件重新排序?

Awk 如何按升序(列)对文件重新排序?,awk,Awk,我想按时间升序重新排列整个文件 file.txt如下所示: a 12.24 text a 1.45 text b 5.12 text a 1.45 text b 5.12 text a 12.24 text 我希望它看起来像这样: a 12.24 text a 1.45 text b 5.12 text a 1.45 text b 5.12 text a 12.24 text 使用sortlinux程序,而不是awk。确切地说: sort -n -k 2 <file

我想按时间升序重新排列整个文件

file.txt如下所示:

a 12.24 text

a 1.45 text

b 5.12 text
a 1.45 text

b 5.12 text

a 12.24 text
我希望它看起来像这样:

a 12.24 text

a 1.45 text

b 5.12 text
a 1.45 text

b 5.12 text

a 12.24 text

使用
sort
linux程序,而不是
awk
。确切地说:

sort -n -k 2 <filename>
sort-n-k2

排序
命令可能比
awk
更适合您的需要

# sort -gk 2 test.txt 
a 1.45 text
b 5.12 text
a 12.24 text

-g将它们作为数字而不是字符串进行比较。和-k2在第二列排序。

既然可以使用Python,为什么还要使用awk?另外,这是一种24小时格式吗?请在Python2.6中尝试使用这一行代码:open(r'temp2.txt',w').writelines(sorted(sorted)(open(r'temp.txt',r').readlines(),key=lambda line:float(line.split()[1])。为了澄清,-n和-g之间的区别,这里解释为:。如果两行可以具有相同的时间,
-k2
将依靠比较整行来排序。添加一个
-s
将关闭此怪癖。