shell比较两个文本从其中一个文本删除另一个文本已有的行

notauth.txt 文本有多个IP,一个一行

2.txt文本也有多个IP,一个一行

现在将notauth.txt文本里面包含有2.txt文本内容的从notauth.txt文本里面删除

#!/bin/bash
cp notauth.txt notauth.txt`date +%y%d%m%H%M%S`   #修改前先备份
a=`cat 2.txt`                                    
for hosts in $a                                  #遍历2.txt的每一行
do
cat notauth.txt | grep $hosts                    #匹配行
hn=`echo $?`                                     #匹配结果,$?为0则配匹成功,须从notauth.txt删除这一行
if [ $hn -eq 0 ];                                
then
sed -i '/'"$hosts"'/d' notauth.txt               #删除行,sed操作变量$hosts,用一对单引号包住一对双引号引用变量'"$hosts"'

fi
done

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值