文件内容的格式是:
1 张三
2 李四
3 张三
第二列有重复数据,去重的脚本如下:
#!/bin/bash sort -t\t -k2 File.txt | awk -F'\t' '{ if($2 == VALUE) {} else if($2 != VALUE) { VALUE = $2; print $0; } }' > target.txt sort -t\t -k1 target.txt > result.txt rm target.txt
首先将第二列进行排序: sort -t\t -k2 File.txt
然后if($2 == VALUE) {}判断 第一列是否与变量 VALUE相等 (不必要担心 VALUE变量的值 在初始化时 awk 为 VALUE赋值 为""),如果相等什么多不做。
else if($2 != VALUE) { VALUE = $2; print $0; }
如果 一列不等于VALUE变量的值将$2赋值为VALUE然后打印这行数据,然后进行下一行 比较 下一行数据与上一行数据的VALUE是否相等相等什么都不敢也就是说
不打印着一行 如果不相等则打印着一行 从而起到去除重复数据的作用