GREP主要用来进行文字或字符操作,是最常用的命令之一;
文本处理三剑客:GREP,AWK ,SED;
| 管道符:主要用类拼接多个命令。拼接后的命令从左往右执行。
命令详解
cat b1.txt | grep a|grep -v s:查找文件b1.txt 中含有a的行,并去除含s的行(s只是没显示,并不是被删除了)
grep的精确输出:
cat b1.txt | grep ‘ffe’
单引号:不具备变量置换功能,所见及所得。
双引号:具备变量置换功能,解析变量后输出,不加引号的话,默认是双引号;
变量置换主要针对shell
通配符:单引号,双引号,> ,>>都是通配符
文本文件在Linux里得存储特点:
1组成文本文件的基本单位是行,而且每个文本文件都有自己的行号;
2就算是空行,也有自己的行编号
3行是由一个或多个单词组成,也可以什么都没有;(注意)
4如果一行是由若干的单词构成,那么一定存在分割问题,分割有可视分隔符(特殊符号或公司自定义得有意义的符号短语)和不可视分隔符(空格或tab)
grep在数据库中的常用操作:
1.检查进程是否存在或相关信息:
ps -ef:检查操作系统中所有正在运行的进程:
例如:ps -ef | grep oracle 主要以检查Oracle用户下的进程为主。如果当你的进程中出现oracle字样,也会被检查出来;
检查oracle 下单一的某一进程:
ps -ef | grep lgwr|grep -v grep:只是单纯的检查lgwr进程,不包含grep这个命令所产生的进程;
ps -ef | grep 1234|grep -v grep:只是单纯的检查1234进程,不包含grep这个命令所产生的进程;
2.检查数据库日志
检查日志是为了快速定位错误出现的地方,Oracle的alert日志,MySQL的error日志中存放着故障日志;
例如:
cat alert_orcl.log|grep ORA- : 查找ORA相关的报错,看看数据库到底出现了哪些错误,这里是只要带有ORA 的就全部计算在内。
cat mysql-error-3306.log|grep Shutdown mysql:查看数据库关闭信息
需要注意的是,有时只看报错会丢失一部分重要信息,为了更加精确,我们需要定位故障出现的位置到底是哪一行,然后通过上下文联系再去做精确定位;
* 在正则表达式和通配符中的区别
星号在正则表达式中代表任意和所有,在正则表达式中代表匹配前面的一个字符任意次
例如
cat 1.txt|grep ad*:表示查看1.txt文件,并匹配文件中出现a和ad的内容,不会单独匹配d。