grep 正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了grep 正则表达式相关的知识,希望对你有一定的参考价值。

grep 可以对文件内容过滤,默认情况是对行过滤; grep语法格式:# grep <pattern> <arg> 实例:grep root passwd grep 选项 -m 匹配条件后停止; # grep -m1`whoami` /etc/passwd -i 忽略条件字符大小写 -v 显示不能被条件匹配的字符; # grep -v root /etc/passwd;不包含root的行 -n 显示匹配的行号 -c 统计匹配的行数 -o 仅显示匹配到的字符串 -q 静默模式,不输出任何信息 ,结果不一样 echo $? -A 匹配后N行 -B 匹配前N行 -C 匹配前后N行 -e 多个选项的逻辑or关系;# grep -e ‘cat‘ -e ‘dog‘ file -w 匹配整个单词 -E 匹配支持ERE -F 相当于fgrep,不支持正则表达式 -f 根据文件内容作为标准输入顾虑 # grep -f file.txt /etc/passwd,根据 file.txt的内容,匹配 passwd 正则表达式分类:基本正则表达式(BRE)和扩展的正则表达式 (ERE) 字符匹配: 匹配特定类型字符 . 匹配任意单个字符 [] 匹配指定范围内的任意单个字符 [^] 匹配任意范围以外的任意单个字符; [:lower:]任意小写字母 [:upper:]任意大写字母 [:alpha:]任意大小写的字母 [:alnum:]字母和数字(大小写和数字) [:digit:]任意十进制数字 匹配次数 * :匹配前面的字符任意次数,包括0次;尽可能的匹配; .* :匹配任意长度的任意字符 \? :匹配器前面的字符0或1次,对前面字符可有,可无; \+ :匹配其前面的字符至少1次; \{n\}:匹配前面的字符n次 \{m,n\}:匹配前面的字符至少每次,最多n次; \{,n\}:匹配前面的字符最多n次; \{n,\}:匹配前面的字符最少n次; 位置锚定--定位出现的位置 ^ 行首锚定;以什么开头 $ 行尾锚定:以什么结尾 ^pattern$:用于模式匹配整行 ^$ 空行 ^[[:space:]]*$ 空白行 \< 或 \b :词首锚定,用于单词模式的左侧; \> 或 \b :词尾锚定,用于单词模式的右侧; 分组\{\} : 将一个或多个字符捆绑在一起,当做一个整体处理,如\(root\)\+ \1 表示从左侧起第一个左括号以及与之匹配右括号之间的模式 所匹配到的字符; 实例:echo abcabcabc |grep "\(abc\)\{3\}" 后向引用:引用前面的分组括号中的模式所匹配字符,而非模式本身; echo abcabcabc xyz xyz |grep "\(abc\).*\(xyz).*\1" \1匹配的是前面的一个结果 或 :\| -- 实例 a 或 b==a\|b egrep及扩展的正则表达式 egrep = grep -E 字符匹配 . 任意单个字符; [] 指定范围的字符; [^] 不在指定范围的字符; 次数匹配 * 匹配前面字符任意次数 ? 可有可无0或1次 + 1次或多次 {m} 匹配m次 {m,n}至少m数,最多n数; 位置锚定 ^ 行首 $ 行尾 \< 词首or \b \> 词尾 or \b 分组 () 后向引用 \1,\2 或 a|b 实例 1、搜索某文件是否包含字符串 命令格式:grep "被查找的字符串" Filename1 2、在多个文件中检索某个字符串 命令格式: grep "被查找的字符串" FileName1... 3、显示检索内容在文件中的行 “-n“ 选项 命令格式: grep -n "被查找的字符串" *.log 4、检索时需要忽略大小写问题,可以使用参数 “-i” 命令格式: grep -i "被查找的字符串" *.log 5、从文件内容查找不匹配指定字符串的行 命令格式:grep –v "被查找的字符串" FileName 搜索查找匹配的行数: grep –c "被查找的字符串" FileName grep "被查找的字符串" FileName | wc -l 7、递归搜索某个目录以及子目录下的所有文件 命令格式:grep –r "被查找的字符串" FileDir 8、获取哪些文件包含搜索的内容,并列出文件名 命令格式:grep -H –r "被查找的字符串" FileDir | cut -d: -f1| [uniq] 9、获取与整个搜索字符匹配的内容 命令格式:grep –w "被查找的字符串" FileName

以上是关于grep 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式与grep

Linux基础--grep与正则表达式

grep与基本正则表达式

grep用法详解:grep与正则表达式 [转]

shell (e)grep正则表达式问题

shell脚本——正则表达式(包含grep详细介绍及应用)