grep命令以及正则表达式

grep,正则表达式

#文件本过滤
grep
– –color=auto
– v #取反
– i #忽略大小写
– n #显示行号
– c #统计行数
– o #只显示匹配模式的字符
– q #静默模式
– A #找到所有的匹配行,并显示匹配行后N行
– B #找到所有的匹配行,并显示匹配行前面N行
– C #除了显示符合范本样式的那1列之外,并显示该列之前后的N行
– e #grep -e root -e bash /etc/passwd,或者
– w #匹配整个单词
– f #grep -f p_file,文件中存放要过滤的模式[包含]
– E #扩展正则表达式
– F #当于fgrep,不支持正则表达式
#数字+字母; 下划线+字母,在grep中都算做是单词
#正则表达式 REGEXP
正则表达式:BRE
元字符:字符匹配、匹配次数、位置锚定、分组
. 匹配任意单个字符
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符
[:lower:] 小写字母 [
[:blank:] 空白字符(空格和制表符
[:space:] 水平和垂直的空白字符,[包含回车和TAB键]
[:cntrl:] 不可打印的控制字符
[:digit:] 十进制数字 [:
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数
* 匹配前面的字符任意次,包括0次
.* 任意长度的任意字符 #贪婪模式:尽可能长的匹配
\? 匹配其前面的字符0或1次
\+ 匹配其前面的字符至少1次
\{n\} 匹配前面的字符n次
\{m,n\} 匹配前面的字符至少m次,至多n次
\{,n\} 匹配前面的字符至多n次
\{n,\} 匹配前面的字符至少n次
#eg
echo axb |grep ax*b, echo axb |grep “ax*b”
echo “1a” |grep “[a-z]\+”
#.在中括号内,表示.本身,不需要转义
eg: echo “1.” |grep “[a-z.]\+”
ifconfig ens38 |grep -o “[0-9.]\{7,\}”
#取分区利用率
df |grep “sd[a-z]\+[1-9]\+” |grep -o “[0-9]\{1,3\}%” |grep -o “[0-9]\+” |sort -nr |head -n1
#位置锚定,对于grep的单词概念:字母、数字、下划线都算是单词
^
$
\< #锚定词首
\> #锚定词尾
\b,\b #表示词首或词尾
#分组
eg: echo “kingkingking” |grep “\(king\)\{3\}”
分组的引用:
\(string1\+\(string2\)*\)
\1 :string1\+\(string2\)*
\2 :string2
eg: grep “^\(.*\):.*/\1$” /etc/passwd
echo “rootaarbbt” |grep ‘\(r..t\).*\1’
echo “rootaaroot” |grep ‘\(r..t\).*\1’
echo “rootaarbbt” |grep ‘\(r..t\).*\(r..t\)’
#或者
| #grep “^\(a\|b\).*” /etc/passwd
eg:
echo axy |grep “\(a\|b\)xy” #过滤axy或bxy
echo axy |grep “a\|bxy” #过滤a或bxy
扩展正则表达式:ERE
扩展正则表达式
次数匹配:
*:匹配前面字符任意次
?: 0或1次
+:1次或多次
{m}:匹配m次
{m,n}:至少m,至多n次
位置锚定:
^ :行首
$ :行尾
\<, \b :语首
\>, \b :语尾
分组:
()
后向引用:\1, \2, …

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95398

(1)
凢洣阳光凢洣阳光
上一篇 2018-04-08 16:00
下一篇 2018-04-08 16:08

相关推荐

  • 进入各种模式操作 在centos虚拟机上实现内外网的连接

      进入单用户模式; 重启后在下面界面按任意键 进入此界面后按“ a ” 在下面界面 输入  1   进入单用户模式  1之前有空格     进入救援模式 1 重启后将鼠标键入界面里,在第一个界面的进度条没走完之前按一次ESC键即可进入(只能按一次ESC) 2 选择上图中的第三项光盘引导启动,之后选择下图的第三项救援模式启动。 &nbsp…

    2018-05-09
  • 第三周作业

    1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可 [root@yinwei ~]# who | cut -d ‘ ‘ -f1 | sort -ucentosgentooroot   取出最后登录到当前系统的用户的相关信息 [root@yinwei ~]# last | head -1gentoo pts/2 …

    Linux笔记 2018-05-25
  • linux磁盘的利用

    RAID简介 RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小而廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损 。 硬盘是个很脆弱的东西,它经常会坏掉。为了保证服务器可靠耐用,硬盘必须时时刻刻保持可用。由于RAID的出现,它的目的…

    Linux笔记 2018-04-29
  • sed作业

    编程基础 程序:指令+数据程序编程风格:过程式:以指令为中心,数据服务于指令对象式:以数据为中心,指令服务于数据shell程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令编程语言:低级:汇编高级:编译:高级语言–>编译器–>目标代码 java,C#解释:高级语言–>解释器&#8211…

    2018-04-15
  • 浅谈几种IO重定向变形用法

    浅谈几种IO重定向变形用法

    2018-04-05
  • linux文件处理命令和用户管理和权限管理

    文件处理命令
    用户管理
    权限管理

    Linux笔记 2018-05-28