Linux---积累----处理文本技巧---去重

对文本的内容进行去重是一个 很常见的需求,excel也可以进行处理但是有数量的限制,而linux更适用于处理比较大的数据量的去重,更大的数据量去重则需要考虑使用spark等大数据框架进行运算。

本文记录 linux实现去重的操作命令

准备数据

示范:

vi barcode_list
# 输入内容

0001
0002
0003
0004


vi losebarcode.txt

# 输入内容

0002
0003
0005

快速去重命令

去掉文件barcode_list和losebarcode.txt都包含的编码,重复的编码

cat barcode_list losebarcode.txt |head
cat barcode_list losebarcode.txt |sort|uniq -c |sort -k 1 -n -r |head
cat barcode_list losebarcode.txt |sort|uniq -c |sort -k 1 -n -r |awk '{if($1==1){print $2}}'
cat barcode_list losebarcode.txt |sort|uniq -c |sort -k 1 -n -r |awk '{if($1==1){print $2}}' > x.txt
cat barcode_list  |wc -l
cat x.txt  |wc -l

主要的思路是 先合并两个文件,然后进行 排序,合并编码对数量进行统计,使用awk筛选出 数量为1的 写入到x.txt中,则 x.txt中为 不重复的 编码

输出如下:

[zzq@host3 ~]$ cat barcode_list losebarcode.txt |sort|uniq -c |sort -k 1 -n -r |awk '{if($1==1){print $2}}'
0005
0004
0001
[zzq@host3 ~]$ 

查看losebarcode.txt中有 barcode_list没有的

head barcode_list
grep -wFf barcode_list losebarcode.txt -v| head 
grep -wFf barcode_list losebarcode.txt -v| wc -l
grep -wFf barcode_list losebarcode.txt -v  >  loseonly.txt

grep -w用于字符串精确匹配
grep -f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
grep -F 或 --fixed-regexp : 将样式视为固定字符串的列表

以上三个参数 都是 处理格式问题,让每一行作为一个单位来精确对比

grep -v 或 --revert-match : 显示不包含匹配文本–不包含匹配字符串的所有行 barcode_list作为匹配文本 ,显示losebarcode.txt中不包含barcode_list的部分,就是 losebarcode.txt中有 barcode_list没有的

使用命令输出如下:

[zzq@host3 ~]$ grep -wFf barcode_list losebarcode.txt -v
0005
[zzq@host3 ~]$ 

去掉指定的两行数据

cat barcode_list |grep -v "0002" |grep -v "0003"
cat barcode_list |grep -v "0002" |grep -v "0003"|wc -l
cat barcode_list |grep -v "0002" |grep -v "0003" > xx.txt

输出如下:

[zzq@host3 ~]$ cat barcode_list |grep -v "0002" |grep -v "0003"
0001
0004
[zzq@host3 ~]$ 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张小凡vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值