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

str=$(cat F2_logcat.log | grep -i "fatal" | grep -v "fatal_events")if [[ $str != "" ]]thenecho "$str" >> error.txtecho "\033[31m天亮请睁眼,昨晚你被Crash了!!!\033[0m"let "FAIL++"elseecho '恭喜你!昨晚是平安夜~~~'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"

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

  1. grep 或 egrep 或awk 过滤两个或多个关键词|使用grep匹配“与”或者“或”模式

    原文地址为: grep 或 egrep 或awk 过滤两个或多个关键词|使用grep匹配"与"或者"或"模式 转自:http://hi.baidu.com/ch ...

  2. 使用adblock的高级自定义过滤器, 来过滤包含特定文字的html元素

    需求:  想用adblock 过滤一个div窗体,   该窗体的特征是其子元素包含指定的文字. 解决方法: 使用adblock的 Snippet  过滤器语法. snippet 命令 hide-if- ...

  3. java字符流的父类_Java基于代码实战的字符流父类、字符转换流、缓冲字符流、过滤流...

    1. Java输入输出(I/O)流的知识回顾: 补充:因为这篇文章是基于上一篇的延续,因此将上一篇进行简单的回顾,以便理解本节内容. 1)输入输出(I/O)流分类:共分为字节型输入输出流和字符型输入输 ...

  4. php过滤4字节的字符串,过滤utf8 字符中超过三个字节的字符,或者非utf8字符

    function filterUtf8($str) { /*utf8 编码表: * Unicode符号范围 | UTF-8编码方式 * u0000 0000 - u0000 007F | 0xxxxx ...

  5. 滑动窗口:给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。

    一.问题描述 给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次.在执行上述操作后,找到包含重复字母的最长子串的长度. 注意: 字符串长度 和 k ...

  6. java中判断字符串实际长度(中文2个字符,英文1个字符)的方法,包含中英文符号

    java中判断字符串实际长度(中文2个字符,英文1个字符)的方法,包含中英文符号 介绍 数据库中很多字段都会限制长度,为了方便用户使用,在前端界面给出限制长度的提示,看网上很多写的获取字符串长度都没有 ...

  7. C语言程序设计——从键盘任意输入一个字符串(可以包含:字母、数字、标点符号,以及空格字符),计算其实际字符个数并打印输出,即不使用字符串处理函数strlen()编程,但能实现strlen()的功能。

    从键盘任意输入一个字符串(可以包含:字母.数字.标点符号,以及空格字符),计算其实际字符个数并打印输出,即不使用字符串处理函数strlen()编程,但能实现strlen()的功能. 程序运行示例: P ...

  8. 利用 Linux grep 和 awk 完成日志过滤

    导语:有时候系统的日志信息的量是很庞大的,这时要查看具体问题可能比较麻烦.此时可以过滤掉无用的日志信息,从而获取预期想获取的信息.或者在排查问题时,查看具体的某一个错误. Linux grep 命令用 ...

  9. 编写一程序,输入一个字符串,查找该字符串中是否包含“abc”。

    import java.lang.String.*;//这里调用java.long.String.contains()方法: import java.util.Scanner; public clas ...

最新文章

  1. Struts 动态Form的验证框架步骤
  2. postgresql - mac 启动 关闭 postgresql
  3. 字符串Hash的原理与应用
  4. java转换为c#_将25k行C#转换为Java的经验教训
  5. python.day05
  6. 电脑w ndows无法自动修复,windows 10自动修复无法修复你的电脑
  7. 【转】QT布局QGridLayout QHBoxLayout QVBoxLayout简要分析!!
  8. mac下git安装与使用
  9. hosts管理工具:SwitchHosts的下载与使用教程
  10. NOIP2013普及组复赛 解题分析
  11. Java导出导入Excel方法
  12. SuperMap iClient3D for WebGL实现三维管线分析
  13. JS、H5调用手机相册摄像头以及文件夹
  14. 阿里优酷视频分类方法???咋理解啊?
  15. 绩效考核如何尽量公正
  16. word文档中如何将软回车替换为硬回车
  17. 在Linux上安装centos 7镜像详细步骤
  18. 使用python对图片进行压缩
  19. java -- 百度API 接口使用
  20. 每个架构师都应该了解的理论:康威定律

热门文章

  1. 用技巧] Http请求偶尔超时+总结各种超时死掉的可能和相应的解决办法
  2. unity3d天空盒
  3. shell脚本中for循环及while循环写法
  4. 有什么免费照片换发型软件?推荐几个换发型软件给你
  5. pygame系列_百度随心听_完美的UI设计
  6. ccc-Brief Introduction of Deep Learning-李宏毅(6)
  7. ARM汇编指令学习笔记(一)
  8. 年纪轻轻竟脱发?头发到底该如何挽回?
  9. 总结的pandas数据结构 和需要掌握的知识点
  10. leetcode141