900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > linux shell编程文本处理命令grep

linux shell编程文本处理命令grep

时间:2023-12-25 17:50:21

相关推荐

linux shell编程文本处理命令grep

linux shell编程文本处理命令grep

linux中最为常用的三大文本(awk,sed,grep)处理工具之一,grep可以理解为过滤,通用的正则表达式分析程序,grep家族总共有三个:grep、egrep、fgrep。

pattern 模式 --》模板

使用基本正则表达式

模式–》正则表达式–》用来表达某个意思–》利用正确的规则组合成一个公式,用来表达某个意思。

正则表达式–》是一些字符串,数字,特殊符号组合而成。

用途:在文件中查找并显示包含指定字符串的行

格式:grep [选项]... 模式 目标文件

-i:查找时忽略大小写 ignore case

-v:反转查找,输出与模式不相符的行 -v, --invert-match

-n:显示符合模式要求的行号 number

-r:递归搜索所有文件

-o:只显示匹配的内容 -o, --only-matching

-E: 支持更多的元字符(支持扩展正则) -E, --extended-regexp regular expression 正则表达式

元字符:有特殊作用的字符 ^ $ 基本元字符 ^ $ *扩展元字符 | + ? { } egrep = grep -E| 或者

-A: 找到匹配行以及后几行

-B:输出匹配行以及前几行

-C:输出前面和后面多少行

^ 代表以什么开头$ 代表以什么结尾^$ 代表空行

^liuyong$ 一行里只有liuyong字符串

[1-9] 代表从1到9的任意一个数字[a-Z] 从a-Z中取一个[a-z] 从a-z中取一个[A-Z] 从A-Z中取一个[0-Z] 从0-9 和a-Z中取一个[^0-Z] 不取0-Z的字符 -->取反

举例

cat /etc/passwd |egrep "^ly[1-9]"cat /etc/passwd |egrep "^root" 以root开头的行 cat /etc/passwd |egrep "bash$" 以bash结尾的行cat /etc/ssh/sshd_config |egrep -v "^$|^#"

通配符

* 代表匹配前一个项任意次? 代表匹配前一个项0次或者1次+ 代表匹配前一个项 一次到多次. 占位符 除\n之外的任意字符{n,m} 匹配前一项n到m次.* 代表任意字符

例子

写一个c类ip地址的正则

c类ip地址范围192~2230~255

cat test.txt | egrep "(19[2-9]|2[01][0-9]|22[0-3])(\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}"

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。