以前一直是在windows上开发,这两年换工作后,才逐步喜欢上了linux; 无论是lnmp环境搭建的方便还是对于大文本大数据的处理,都是绝对会让你放弃wamp开发的
最近经常会对一批千万级别的数据进行处理,网上搜了下,用AWK处理不错,简单总结下最近用到的去重用法,留个记录。
Awk是行处理器,依次对每一行进行处理,然后输出。在处理庞大文件时不会出现内存溢出或是处理缓慢问题,通常用来格式化文本信息
1. 对所有行进行去重, 并打印显示不重复行记录
cat test_awk.txt | awk '!a[$0]++{print}'
2. 对所有行进行去重, 并打印显示重复行记录
cat test_awk.txt | awk 'a[$0]++{print}'
3. 对第一列和第二列进行去重,并打印显示不重复记录
cat test_awk.txt | awk '!a[$1" "$2]++{print}'
4. 对第一列去重,并记录不重复行数
cat test_awk.txt | awk '!a[$1]++' | wc -l
5. 对最后一列去重,并记录不重复行数
cat test_awk.txt | awk '!a[$NF]++' | wc -l
浙公网安备 33010602011771号