grep或/与的多重过滤,包含ABC,但不含ABCD的字符&echo输出带颜色的字符

该博客讲述了在进行设备稳定性测试时,如何通过grep命令结合-i和-v选项来过滤日志中关于'fatal'的错误信息,同时排除'crash_event'和'nocrash'等关键词。作者给出了具体的操作示例,并展示了如何通过管道符实现多条件过滤。此外,还介绍了如何利用echo输出红色警告信息。

背景:还是因为最近压测,要判定设备是否存在crash,grep crash之后,但是总有一些其他关键词的干扰,例如:crash_event,no crash等,所以梅开二度,再次修改脚本,来一个完整判断。话不多说,上代码~

str=$(cat F2_logcat.log | grep -i "fatal" | grep -v "fatal_events")

        if [[ $str != "" ]]
        then
            echo "$str" >> error.txt
            echo "\033[31m天亮请睁眼,昨晚你被Crash了!!!\033[0m"
            let "FAIL++"
        else
            echo '恭喜你!昨晚是平安夜~~~'
            let "PASS++"
        fi

1、先来说grep多重过滤

很多细节就不在这里展开了,可以自行--help,说几个常用的,grep操作默认是区分大小写的

  • -i 或 --ignore-case : 忽略字符大小写的差别。
  • -v 或 --invert-match : 显示不包含匹配文本的所有行
(base) ➜  1 cat logcat.log 
1 a
2 ab
3 aabb
4 aabbcc
5 AB
6 AbC
7 abc
8 ABCd%                                                                                                                                             

(base) ➜  1 cat logcat.log | grep ab 
2 ab
3 aabb
4 aabbcc
7 abc
(base) ➜  1 cat logcat.log | grep -i ab
2 ab
3 aabb
4 aabbcc
5 AB
6 AbC
7 abc
8 ABCd
(base) ➜  1 cat logcat.log | grep -v ab
1 a
5 AB
6 AbC
8 ABCd
(base) ➜  1 cat logcat.log | grep -i ab | grep -v abc
2 ab
3 aabb
4 aabbcc
5 AB
6 AbC
8 ABCd

这个结果一目了然,就不用过多解释了,再说一下或和与的操作

1)grep匹配ab,bc,ac任一个字符即可

(base) ➜  1 cat logcat.log | grep "ab\|bc\|ac"
2 ab
3 aabb
4 aabbcc
7 abc

2) grep匹配ab,bc,必须同时满足才匹配

(base) ➜  1 cat logcat.log | grep ab | grep bc
4 aabbcc
7 abc

2、echo输出红色字符

Linux输出带颜色的字符,格式如下,用的最多的就是红色,颜色配置表格我就不贴出来了

echo \033[显示方式;前景色;背景色m

其中\033是ESC健的八进制,\033[即告诉终端后面是设置颜色的参数,显示方式,前景色,背景色均是数字

# 替换代码中的汉字就可以直接运行了,不用添加'
echo "\033[31m红色文字\033[0m"
echo "\033[32m绿色文字\033[0m"
echo "\033[33m黄色文字\033[0m"

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值