LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1117|回复: 0

大家帮忙修改一下shell脚本

[复制链接]
发表于 2009-6-23 08:44:10 | 显示全部楼层 |阅读模式
1、当前目录下有40个规则文件(后缀为.rule)以及各个规则文件对应的规则加载失败信息文件(后缀名为.rule.fail)
例如:规则文件POP3.rule对应的规则加载失败信息文件为POP3.rule.fail
2、rulelist文件的内容是40个规则文件名的集合,具体内容是:
   POP.rule
   POP3.rule
   DNS.rule
   SNMP.rule
   .....
   .....
   .....

3、fail.txt文件的内容是规则加载失败信息文件名的集合,具体内容为:
   POP.rule.fail
   POP3.rule.fail
   DNS.rule.fail
   SNMP.rule.fail
   .....
   .....
   .....
4、规则文件内容例如:
   alert  tcp $EXTERNAL_NET any -> $HOME_NET 110 (msg:"OP3 CAPA overflow attempt"; flow:to_server,established;

content:"CAPA"; nocase; isdataat:10,relative; pcre:"/^CAPA\s[
^\n]{10}/smi"; metadata:service pop3; classtype:attempted-admin; sid:2108; rev:4;)
   alert  tcp $EXTERNAL_NET any -> $HOME_NET 110 (msg:"OP3 TOP overflow attempt"; flow:to_server,established;

content:"TOP"; nocase; isdataat:50,relative; pcre:"/^TOP\s[^\n
]{50}/smi"; metadata:service pop3; classtype:attempted-admin; sid:2109; rev:5;)

    ........
    ........
    ........
5、规则加载失败信息文件内容例如:
   sid:2108
   sid:2128
   ........
   ........

现需要根据加载失败信息文件(后缀名为.rule.fail)的内容删除规则文件中相应的规则,例如:根据关键字sid:2108删除下面这条规则:
alert  tcp $EXTERNAL_NET any -> $HOME_NET 110 (msg:"OP3 CAPA overflow attempt"; flow:to_server,established;

content:"CAPA"; nocase; isdataat:10,relative; pcre:"/^CAPA\s[
^\n]{10}/smi"; metadata:service pop3; classtype:attempted-admin; sid:2108; rev:4;)

shell脚本如下:
#! /bin/sh
while read line1
do
   s=`cat fail.txt | grep '\<$line1'`
   while read line2
   do
      sed '/$line2/d' $line1
   done < $s
done < rulelist
运行出现错误:$s:ambiguous redirect
请各位帮忙看一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表