在浏览头条时,遇到了几篇排序,去重excel的作品,发现其处理过程均比较麻烦,下面教大家如何通过一条指令搞定。


1. 首先我们准备一个二百万行的excel文件,一时没有数据,总不能一行一行录入吧,肯定不能了,还是一条指令搞定数据的准备。

for line in {1..2000000}; do echo $line,$[RANDOM%32768+1] >> data.csv; done

备注:这里简单说明下,上面的指令生成了二百万行两列的csv文件(可与excel互相转换,区别不大),第一列表示行号,第二列是1~32768的随机数字。

2.准备好了数据,我们就可以来排序,去重我们的excel文件了,说好的一条指令,就是一条指令,如下,排序很快的,只用了2秒就完事了

sort -u -t, -n -k2,2 data.csv >> sortedData.csv

备注:这里简单说明下,上面的指令中的参数

-u:去重;

-t,:使用逗号作为间隔符

-k2,2:去重时根据第二列到第二列

-n:去重是,按数字来处理

3.查看下结果,查看排序前后文件行数,

统计源文件行数,显示为2000000行 wc -l data.csv 2000000 data.csv 统计去重,排序后的文件行数,显示为32768行。 wc -l sortedData.csv 32768 sortedData.csv

查看排序前后的文件内容,