linux基础入门--grep命令及正则表达式

grep命令:print lines matching a pattern

【功能】使用grep命令查找文件内容中的匹配到的字符串显示之,也称为过滤器,当然支持正则表达式复合使用。

【语法】

grep [options][pattern] filename

【常用选项】

-i:表示忽略大小写显示之
-n:输出行号
-o:表示只显示被匹配到模式的本身
-v:表示显示反显,匹配的不显示,没匹配到的显示之
-A # :显示匹配到的后#行
-C # :显示匹配到的前后#行
-B # :显示匹配到的前#行
--color=auto:将匹配到的内容着色显示之

【实例1】默认着色显示

wKiom1cY5H6Czfx4AAAoTeGD9zw597.png

【实例2】-i选项不区分大小写

wKiom1cY5kvjDl30AABJ_Jo204w023.png

【实例3】反显和显示行号

wKiom1cY5ufQ8wdwAABJQcCUxFs900.png

【实例4】只显示匹配到模式的本身

wKioL1cY8MvQM__0AAAclTbSV18577.png


    正则表达式:在linux系统中shell,有特定的特殊符号来实现匹配文本中的指定字符串,在于许多复杂难以写出或需要匹配特定位置[范围]时,可使用正则表达式匹配模式来实现,类似glob通配符。

    在linux系统中正则表达式应用很广泛,常见使用正则表达式的工具有以下几个

用于匹配文本行的grep工具家族(grep,grep,fgrep)
用于改变输入流的sed流编辑器(stram editor)
用于处理字符串语言的gawk,python,perl等
文件查看程序,或分页程序,more,less
文本编辑器vim

    

    正则表示分为基本正则表达式和扩展正则表达式

wKioL1cY-aaRusaiAACtxh6RIfY108.png

note:分组中的()如果有多个,后项引用分前后,或者是(()) 从外到内分别为\1\2


wKiom1cZAKaCfB4jAABHFlE9wZY305.png


【实例1】模式"^1",表示匹配首行为1的行,锚定行首

wKioL1cZA-2Qu_6hAAAo-LrStfU455.png

【实例2】模式"$",表示匹配行尾字符的行,锚定行尾

wKioL1cZBMHRti0BAAAv7R3LHbQ298.png

【实例3】模式{m},表示匹配前面字符1m次匹配,

wKiom1cZBObTdrK2AAAtKT_pZIo029.png

【实例4】匹配至少一次,最多n次

wKiom1cZBeDCjhyAAAAqtiNJbkw357.png

【实例5】匹配前字符至少m次,最多n次匹配

wKiom1cZBu3BoFlJAAArFJzWz5A858.png

【实例6】专用字符集


wKioL1cZKG_ytVRsAABZf3Vz1Fs195.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章