comm对比两个文件是否相同

comm使用前提是排序
-1 不输出文件1 特有的行
-2 不输出文件2 特有的行
-3 不输出两个文件共有的行

例子:打印 R_S.list2独有的内容
[root@db88:/mq] $comm -13 R_S.list1 R_S.list2
1111111111
2222222222

awk -F”[()]” ‘{print $2}’ 以()为分隔符

[root@db88:/mq] $cat lizi.list
   CHANNEL(0115840268.GW5840)              CHLTYPE(RCVR)
   CHANNEL(GW3010.3133010001)              CHLTYPE(SDR)
#!/bin/ksh
for i in 1 2 3
do
   echo "Current file is R_S.list${i}"

   #筛选MQ发送通道S.list,排序去重
   #筛选mq接收通道R.list,排序去重
   cat lizi.list${i}|grep "CHLTYPE(RCVR)"|awk -F"[()]" '{print $2}'|cut -d "." -f1|sort -u >R.list
   cat lizi.list${i}|grep "CHLTYPE(SDR)"|awk -F"[()]" '{print $2}'|cut -d "." -f2|sort -u >S.list

   ##筛选MQ发送和接受通道都running的机构号   comm对比是基于排序去重的
   comm   -12  R.list  S.list>R_S.list${i}
   sleep  600   ##10min循环执行一次捕获新的双向running通道
done

###之后每次执行产生的RSxxxxxx.list都要和前一次的对比下,RS2.list有的,RS1.list没有的

#
#
###打印出第二次执行中,较第一次新增的双向通道都是running的机构
comm -13 R_S.list1 R_S.list2 > 2-1.list  
###-1不打印包含在第一个文件中特有的行,-3表示不打印两个文件共有的行 
#
###打印第三次对比第二次又新增的机构
comm -13 R_S.list2 R_S.list3 > 3-2.list  

#cat S.list|while read line
#do
#R_ID=`echo $line|sed 's/\s\+//g' `  ##其中\s代表空格,+代表出现一次或多次。把所有空白格替换成空
#echo "${R_ID}"
#    cat R.list|while read line
#    do
#     S_ID=`echo $line|sed 's/\s\+//g' `   ##循环比对发送和接受的机构
#    if [ ${S_ID} -eq ${R_ID} ]; then
#       echo "SID is  ${S_ID}"
#       echo "rid is ${R_ID} "
#    else 
#       echo  "no sid:${S_ID} "
#     fi     
#    done
#done
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值