shell编程系列8--文本处理三剑客之grep和egrep
grep和egrep 第一种形式:grep [option] [pattern] [file1,file2...] 第二种形式:command | grep [option] [pattern] grep参数 选项 含义
-v 不显示匹配行信息
-i 搜索时忽略大小写
-n 显示行号
-r 递归搜索
-E 支持扩展正则表达式
-F 不按正则表达式匹配,按照字符串字面意思匹配不常用选项
-c 只显示匹配行总数
-w 匹配整词
-x 匹配整行
-l 只显示文件名,不显示内容
-s 不显示错误信息grep和egrep:
grep语法格式
grep [option] [pattern] [file1,file2...]
必须掌握的选项:
-v 显示不匹配pattern的行
-i 搜索时忽略大小写
-n 显示行号
-E 支持扩展的正则表达式
-F 不支持正则表达式,按字符串的字面意思进行匹配
-r 递归搜索
需要了解的选项:
-c 只输出匹配行的数量,不显示具体内容
-w 匹配整词
-x 匹配整行
-l 只累出匹配的文件名,不显示具体匹配行内容 grep和egrep:
grep默认不支持扩展正则表达式,只支持基础正则表达式 使用grep -E可以支持扩展正则表达式 使用egrep可以支持扩展正则表达式,与grep -E等价 # 示例 # 显示file中有python的行
[root@es01 ~]# cat file
i love python
hello python
aaa bbb
I LOVE PYTHON
HELLO PYTHON
PYTHON IS A AI LANGUAGE
end [root@es01 ~]# grep python file
i love python
hello python # 没有python的行,不忽略大小写
[root@es01 ~]# grep -v python file
aaa bbb
I LOVE PYTHON
HELLO PYTHON
PYTHON IS A AI LANGUAGE
end # 没有python的行,忽略大小写
[root@es01 ~]# grep -vi python file
aaa bbb
end # 查找/etc/man_db.conf 中带man的行,在文件中的行号
[root@es01 ~]# grep -n man /etc/man_db.conf
:# This file is used by the man-db package to configure the man and cat paths.
:# It is also used to provide a manpath for those without one by examining
:# their PATH environment variable. For details see the manpath() man page.
:# MANDATORY_MANPATH manpath_element
:# MANPATH_MAP path_element manpath_element
:# MANDB_MAP global_manpath [relative_catpath]
:#MANDATORY_MANPATH /usr/src/pvm3/man
:MANDATORY_MANPATH /usr/man
:MANDATORY_MANPATH /usr/share/man
:MANDATORY_MANPATH /usr/local/share/man
:# ie. what man tree holds man pages for what binary directory.
:MANPATH_MAP /bin /usr/share/man
:MANPATH_MAP /usr/bin /usr/share/man
:MANPATH_MAP /sbin /usr/share/man
:MANPATH_MAP /usr/sbin /usr/share/man
:MANPATH_MAP /usr/local/bin /usr/local/man
:MANPATH_MAP /usr/local/bin /usr/local/share/man
:MANPATH_MAP /usr/local/sbin /usr/local/man
:MANPATH_MAP /usr/local/sbin /usr/local/share/man
:MANPATH_MAP /usr/X11R6/bin /usr/X11R6/man
:MANPATH_MAP /usr/bin/X11 /usr/X11R6/man
:MANPATH_MAP /usr/games /usr/share/man
:MANPATH_MAP /opt/bin /opt/man
:MANPATH_MAP /opt/sbin /opt/man
... # -E 支持扩展正则表达式选项
[root@es01 ~]# cat file
i love python
hello python
aaa bbb
I LOVE PYTHON
HELLO PYTHON
PYTHON IS A AI LANGUAGE
end [root@es01 ~]# grep "python|PYTHON" file
[root@es01 ~]# grep -E "python|PYTHON" file
i love python
hello python
I LOVE PYTHON
HELLO PYTHON
PYTHON IS A AI LANGUAGE
[root@es01 ~]# # 只显示匹配到的行数
[root@es01 ~]# grep -c python file [root@es01 ~]# grep -c man /etc/man_db.conf # 匹配python或者PYTHON
[root@es01 ~]# grep -E "python|PYTHON" file
i love python very
hello python
I LOVE PYTHON
HELLO PYTHON
PYTHON IS A AI LANGUAGE
lovelove python
[root@es01 ~]# egrep "python|PYTHON" file
i love python very
hello python
I LOVE PYTHON
HELLO PYTHON
PYTHON IS A AI LANGUAGE
lovelove python
shell编程系列8--文本处理三剑客之grep和egrep的更多相关文章
- shell编程系列11--文本处理三剑客之sed利用sed删除文本中的内容
shell编程系列11--文本处理三剑客之sed利用sed删除文本中的内容 删除命令对照表 命令 含义 1d 删除第一行内容 ,10d 删除1行到10行的内容 ,+5d 删除10行到16行的内容 /p ...
- shell编程系列18--文本处理三剑客之awk动作中的条件及if/while/do while/for循环语句
shell编程系列18--文本处理三剑客之awk动作中的条件及if/while/do while/for循环语句条件语句 if(条件表达式) 动作1 else if(条件表达式) 动作2 else 动 ...
- shell编程系列14--文本处理三剑客之awk的概述及常用方法总结
shell编程系列14--文本处理三剑客之awk的概述及常用方法总结 awk是一个文本处理工具,通常用于处理数据并生成结果报告 awk的命名是它的创始人 Alfred Aho.Peter Weinbe ...
- shell编程系列12--文本处理三剑客之sed利用sed修改文件内容
shell编程系列12--文本处理三剑客之sed利用sed修改文件内容 修改命令对照表 编辑命令 1s/old/new/ 替换第1行内容old为new ,10s/old/new/ 替换第1行到10行的 ...
- shell编程系列10--文本处理三剑客之sed利用sed查询特定内容
shell编程系列10--文本处理三剑客之sed利用sed查询特定内容 利用sed查找文件内容: pattern种类: .8p .,10p .,+5p ./regexp/p .,/regexp/p . ...
- shell编程系列9--文本处理三剑客之sed概述及常见用法总结
shell编程系列9--文本处理三剑客之sed概述及常见用法总结 sed的工作模式:对文本的行数据一行行处理,如下图 sed(stream editor),是流编辑器,依据特定的匹配模式,对文本逐行匹 ...
- shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计
shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计 shell中的数组的用法: shell数组中的下标是从0开始的 array=("Allen" & ...
- shell编程系列20--文本处理三剑客之awk常用选项
shell编程系列20--文本处理三剑客之awk常用选项 awk选项总结 选项 解释 -v 参数传递 -f 指定脚本文件 -F 指定分隔符 -V 查看awk的版本号 [root@localhost s ...
- shell编程系列19--文本处理三剑客之awk中的字符串函数
shell编程系列19--文本处理三剑客之awk中的字符串函数 字符串函数对照表(上) 函数名 解释 函数返回值 length(str) 计算字符串长度 整数长度值 index(str1,str2) ...
随机推荐
- P2149 [SDOI2009]Elaxia的路线[最长公共路径]
题目描述 最近,Elaxia和w**的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间. Elaxia和w**每天都要奔波于宿舍和实验室之间,他们 希望在 ...
- mysql 杂记 —— 时区问题
查看时区: SHOW VARIABLES LIKE "%time_zone%"; 输出 Variable_name Value system_time_zone CST time_ ...
- LG5487 【模板】线性递推+BM算法
[模板]线性递推+BM算法 给出一个数列 \(P\) 从 \(0\) 开始的前 \(n\) 项,求序列 \(P\) 在\(\bmod~998244353\) 下的最短线性递推式,并在 \(\bmod~ ...
- 神经网络(9)--如何求参数: backpropagation algorithm(反向传播算法)
Backpropagation algorithm(反向传播算法) Θij(l) is a real number. Forward propagation 上图是给出一个training examp ...
- Eclipse中安装Spring IDE
====>在线安装 1.寻找Spring IDE插件更新地址:http://marketplace.eclipse.org/content/spring-ide 2.复制对应Eclipse版本的 ...
- logstash-output-jdbc使用
项目需要,使用logstash定时读取log文件,并插入mysql数据库中,output使用logstash-output-jdbc插件.该插件不是默认安装的,需要使用命令:bin/logstash- ...
- webpack打包绝对路径引用资源和element ui字体图标不显示的解决办法
webpack打包绝对路径引用资源解决办法: 打开webpack.prod.conf.js 找到output:增加 publicPath: './', 即可,如图 element ui字体图标不显 ...
- Spring Jpa
一对多 1.application.properties 2.Dao层 3.Controller 3.1级联添加数据 3.2查询数据 3.3删除数据 多对多 1.查询 2.添加
- HttpClient SSL connection could not be established error
系统从.net framework 升级到dotnet core2.1 原先工作正常的httpclient,会报SSL connection could not be established erro ...
- 洛谷 P2251 质量检测 题解
P2251 质量检测 题目背景 无 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, ...
不常用选项
grep和egrep: