如何以数字方式对文本文件进行排序,然后将结果存储在同一文本文件中?

时间:2015-04-23 16:50:45

标签: linux

我试过了sort -n test.text > test.txt。但是,这给我留下了一个空文本文件。这里发生了什么,我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:1)

排序不会对文件进行就地排序。它会输出一个已排序的副本。

您需要sort -n -k 4 out.txt > sorted-out.txt

编辑:要获得所需的订单,您必须使用反向读取的数字对文件进行排序。这样做:

cut -d' ' -f4 out.txt | rev | paste - out.txt | sort -k1 -n | cut -f2- > sorted-out.txt

更多学习 -

sort -nk4 file
  

-n用于数字排序

     

-k用于提供密钥

     

或添加-r选项进行反向排序

sort -nrk4 file

答案 1 :(得分:0)

这是因为您正在阅读和写入同一个文件。你不能这样做。您可以尝试使用临时文件,mktemp甚至是:

sort -n test.text > test1.txt
mv test1.txt test

对于sort,您还可以执行以下操作:

sort -n test.text -o test.text