2012-05-07 36 views
2
-53 45 
-54 43 
-55 42 
-56 41 
-57 40 
-59 37 
-61 35 
-61 36 
-62 34 
-64 33 
-65 31 
-65 32 
-67 30 
-68 29 
-69 28 
-72 25 
-73 23 
-73 24 
-74 22 
-76 20 
-76 22 
-78 20 
-79 18 
-80 17 
-81 16 

在上面你会看到,在-61发生两次,所以做一些其他的值。我想创建一个没有任何重复的新文件。所以新文件应该有-61 35或-61 36 ...如何在Linux中使用Bash脚本对这些值进行排序?

我该怎么做?!我尝试使用uniq进行排序,但没有奏效。

回答

5

假设你的数据在一个名为输入

cat input | sort -u -n 

在做一个数字(N)排序连同独特的(-u)中,实现重复检查。

+0

非常感谢,工作! – maths

+4

不需要'cat':'sort -nu input' –

+2

[Useless Use of Cat](http://partmaps.org/era/unix/award.html)。否则,这绝对是我的首选解决方案。 –

4

如果你能保证第一个字段的长度,

sort | uniq --check-chars=4 

会做的伎俩。

否则,尝试AWK:

awk '{ if (FNR == 1 || last != $1) print; last = $1; }' 
+0

非常感谢你的工作!我是bash的新手,那真的很有用....你们摇滚! :) – maths

相关问题