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
下一篇 2018-04-08

相关推荐

  • linux的inode的理解

    一、inode是什么?     理解inode,要从文件储存说起。     文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。     操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(bl…

    Linux笔记 2018-04-01
  • Linux文件管理及bash特性

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 mkdir,rmdir,pwd,cd,cp,touch,mv 1.mkdir:创建目录 -p:递归创建多个目录 2.rmdir:删除空目录 3.pwd:显示当前工作目录 4.cd:切换当前目录 5.cp:复制文件 单源复制:cp [OPTION]…[T] SOURCE DEST   …

    2018-06-29
  • Centos7默认网卡名如何修改成eth*

    Centos7 新添加网卡默认的识别名ens*,用起来很不习惯,为了方便系统的统一化管理,如何将默认命名规则改成eth*?

    2018-04-29
  • 文件系统和系统分区

    一、磁盘分区parted、fdisk、gdisk
    二、cache和buffer区别
    三、创建文件系统mkfs、blkid、tunefs、dumpe2fs
    四、文件系统修复fsck

    2018-05-26
  • 加密和安全

    安全机制 信息安全防护的目标保密性 Confidentiality完整性 lntegrity可用性 Usability可控制性Controlability不可否认性 Non-repudiation安全防护环节物理安全:各种设备/主机、机房环境系统安全:主机或设备的操作系统应用安全:各种网络服务、应用程序网络安全:对网络访问的控制、防火墙规则数据安全:信息的备…

    2018-06-02
  • linux命令之chown

    chown(选项)(参数)

    Linux笔记 2018-08-05