grep 正则表达式
发布时间:2020-12-14 06:08:56 所属栏目:百科 来源:网络整理
导读:grep 可以对文件内容过滤,默认情况是对行过滤; grep语法格式:# grep pattern arg 实例:grep root passwd grep 选项 -m 匹配条件后停止; # grep -m1`whoami` /etc/passwd -i 忽略条件字符大小写 -v 显示不能被条件匹配的字符; # grep -v root /etc/pass
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
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |