shell取出多列文件中某一列重复的数据
2012-09-25 19:51
176 查看
文件内容的格式是:
1 张三
2 李四
3 张三
第二列有重复数据,去重的脚本如下:
首先将第二列进行排序: sort -t\t -k2 File.txt
然后if($2 == VALUE) {}判断 第一列是否与变量 VALUE相等 (不必要担心 VALUE变量的值 在初始化时 awk 为 VALUE赋值 为""),如果相等什么多不做。
不打印着一行 如果不相等则打印着一行 从而起到去除重复数据的作用
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是否相等相等什么都不敢也就是说
不打印着一行 如果不相等则打印着一行 从而起到去除重复数据的作用
相关文章推荐
- Linux下删除大数据文件中部分字段重复行的方法
- 【笔试】超大文件里的数据去重排序;将log中MAC地址提取出来;取出数据库表T里第20行到29行的数据;如何判断一个二叉树B是不是二叉树A的子树?
- shell 脚本实现二进制文件数据的异或(xor)操作
- shell命令find删除修改后带尾巴的重复的文件
- 存储过程查询一张表中记录是否连续、重复并且取出对应的数据
- SQL查询一列中是否有重复数据
- 【shell】删除重复文件
- 关于tp3.2.3文件导入数据库(去除重复数据)、写日志和下载问题
- 创建shell脚本,利用for循环箱向日志文件中插入n条数据
- Thinkphp实现文件上传以及去除重复数据
- 如何使用shell从一个文件中取出不在另一个文件中的内容
- 利用dom4j取出XML文件中的数据
- 读文件最后一行数据重复出现解决办法
- AJAX提交表单后要清空,否则再次提交原来的数据会认为重复提交,提交失败。使用ajaxSubmit 函数需要引入jquery.form.min.js 文件
- shell脚本从文件中按行读取数据,并且赋值到数组中的几种方法
- shell命令一行一行读取文件数据
- 通过shell脚本实现从文件中读取数据的几种方法
- 上传文件时如何去除重复的数据
- 存储过程查询一张表中记录是否连续、重复并且取出对应的数据
- 用uniq来处理文件重复数据--交集,差集,计数等(转)