grep 的初级应用

grep的功能强大,是linux行编辑的三剑客。linux


那grep是如何工做的 呢 ???git

grep命令在一个或者多个文件中搜索字符串模板。模板能够是一个被引用的字符串或者是一个单词。ide

其后面全部字符串被看作文件名。grep把搜索结果送道屏幕,可是不影响输入文件spa


格式内存

grep [OPTIONS] PATTERN [FILE...]字符串

grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]it

实例模板

grep user /etc/passwdclass

说明 grep 将在文件 /etc/passwd 下搜索 模板tom。若是成功,若是成功搜索的行将显示在屏幕上。搜索


grep:

字符匹配

. 匹配任意一个单个字符  

[] 匹配[]内任意字符 ,[A-Z]从大写A 到 Z ,其中 -表明范围内任意次

posix字符集

        [[:digit:]] 数字

        [[:lower:]] 小写字母

        [[:upper:]] 大写字母

[[:space:]] 空格

[[:punct:]] 标点符号

[[:alpha:]] 字母(大写+小写)

[[:alnum:]] 数字+字母



次数匹配

* 匹配任意次

\? 匹配0次或1次

\{m,\} m次, 最少m次

\{0,n\} 最多n次

\{m,n\} 最多n次,最少m次

\是转义字符  

grep “\.5”

grep '5\..'

grep “\.5” 表示打印包含字符串“.5”的行

用法

       \.   ,  \? ,  \(,\)  ,  \{,\}


位置匹配

^ 行首锚定

$ 行尾锚定


分组

\(\)

把分组内的数据,保存到内存中,方便引用

引用

\(\)...\(\)  $1$2   

     引用分组中 的内容,$1 表示引用第一个分组 ,$2 第二个分组

grep案例:

grep “^【we】”      表示打印全部w或者e开头的行。^表示 定词首,括号里的一个字符被匹配。

grep   “^【we】$”    表示打印全部只有w或者e。^表示 锚定词首,$表示锚定词尾

grep “【a-z】\{9\}”    表示打印带每一个字符串带有9个连续字母的行

grep  “\bair ”        表示打印 文件中有air单词的行     \b 是单词边界付  

grep  "aa*"               表示 打印  文件 中全部 带 一个  或者 多个 a  。*表示0个或者多个

grep    “\<air\> ”   表示 打印   包含 air 的 行 。\<  表示是单词的开头 ,  \ >单词结尾

grep -i “^p.*”     表示打印,不区分大小写,以P开头,的任意字符的行

相关文章
相关标签/搜索