加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 在IF声明中的grep

发布时间:2020-12-15 18:41:38 所属栏目:安全 来源:网络整理
导读:以下脚本部分读取$next中的每一行.但是当我尝试grep特定模式,即$next中的“MO”时,错误在标准输出上显示为 grep:40922 | OPR:没有这样的文件或目录 grep:MO:没有这样的文件或目录 grep:12345 | OPR:没有这样的文件或目录 grep:MO:没有这样的文件或目
以下脚本部分读取$next中的每一行.但是当我尝试grep特定模式,即$next中的“MO”时,错误在标准输出上显示为

grep:40922 | OPR:没有这样的文件或目录
grep:MO:没有这样的文件或目录
grep:12345 | OPR:没有这样的文件或目录
grep:MO:没有这样的文件或目录
grep:12345 | 12345 | 202 | local | LMNO:没有这样的文件或目录

cat /home/scripts/$E1.out | while read next  
do  
i=`echo $next | awk -F"|" '{print($1)}'`
j=`echo $next | awk -F"|" '{print($2)}'`
k=`echo $next | awk -F"|" '{print($3)}'`
l=`echo $next | awk -F"|" '{print($4)}'`
m=`echo $next | awk -F"|" '{print($5)}'`
n=`echo $next | awk -F"|" '{print($6)}'`
o=`echo $next | awk -F"|" '{print($6)}'`  
if grep -q "MO" $next  
then echo "FOUND;" >> /home/scripts/sql.$E1.out  
else echo "NOT FOUND;" >> /home/scripts/sql.$E1.out  
fi  
done

$E1.out文件看起来像:

40922 | OPR MO 12345 | OPR MO 12345 | 12345 | 202 |本地| LMNO

您传递给 grep,$next的论据被视为要搜索的文件名列表.如果要在该行内搜索一个字符串(例如MO),那么您需要将其放在一个文件中,并将该文件作为参数传递,或者通过标准输入进行管道传输.

这里有一个例子,你可以试试在命令行;当然,用你所使用的字面值代替你所使用的变量说明:

if echo "40922|OPR MO 12345|OPR MO 12345|12345|202|local|LMNO" | grep -q "MO"
  then echo "FOUND"
  else echo "NOT FOUND"
fi

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读