如何在Linux中使用Bash脚本对这些值进行排序?

时间:2012-05-07 17:54:40

标签: linux bash sorting duplicate-removal

-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 ...

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

2 个答案:

答案 0 :(得分:5)

假设您的数据位于名为input

的文件中
cat input | sort -u -n

当执行数字(-n)排序以及唯一(-u)时,将实现重复检查。

答案 1 :(得分:4)

如果可以保证第一个字段的长度,

sort | uniq --check-chars=4 

会做到这一点。

否则,请尝试awk:

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