现在的位置: 首页 > 操作系统 > 正文

Linux 文本处理三大方法之grep

2019年12月25日 操作系统 ⁄ 共 1984字 ⁄ 字号 评论关闭

Linux文本处理三大方法都是什么

  sed:streameditor,流编辑工具程序。

  awk:linux上是gawk,格式化文本工具程序。

  grep:GlobalsearchRegularexpressionandprintouttheline

  使用基本正则表达式的命令:

  grep

  egrep-G

  fgrep-G

  使用扩展正则表达式的命令:

  grep-E

  egrep

  fgrep-E

  不使用正则表达式的命令,速度会快得多。

  fgrep

  文本搜索工具,根据用户指定的搜索条件,对目标文本逐行扫描,打印出匹配的所有行。

grep使用介绍:

  语法:

  grep[OPTIONS]PATTERN[FILE...]

  grep[OPTIONS][-ePATTERN|-fFILE][FILE...]

  最基本的例子:查找"UUID",在/etc/fstab

  #grep"UUID"/etc/fstab

  UUID=3d3b316a-529e-484a-9895-e785fdde5365/bootxfsdefaults00

  搜索时,搜索条件的字母是区分大小写的,让它不区分大小写的选项:-i

  #grep"UUiD"/etc/fstab

  #echo$?

  1

  #grep-i"UUiD"/etc/fstab

  UUID=3d3b316a-529e-484a-9895-e785fdde5365/bootxfsdefaults00

  不让它显示匹配到的一整行,只显示匹配但的文本内容本身:-o

  #grep-o"UUID"/etc/fstab

  UUID

  让它显示没有匹配到的行:-v

  #grep-v"UUID"/etc/fstab

  /dev/mapper/centos-root/xfsdefaults00

  不显示匹配到的内容,只想知道是否匹配的结果:-q

  #grep-q"UUID"/etc/fstab

  #echo$?

  0

  #grep-q"UUIDa"/etc/fstab

  #echo$?

  1

  使用扩展正则表达式:-E

  显示匹配到的行的行号:-n

  #grep-n"UUID"/etc/fstab

  10:UUID=3d3b316a-529e-484a-9895-e785fdde5365/bootxfsdefaults00

  显示匹配到行的后面几行:-A#。#是数字

  #grep-nA1gentoo/etc/passwd

  49:gentoo:x:1004:1004::/tmp/gentoo:/bin/bash

  50-fedora:x:1005:1005::/tmp/fedora:/bin/bash

  显示匹配到行的前面几行:-B#。#是数字

  #grep-nB2gentoo/etc/passwd

  47-za2:x:1002:1003::/home/za2:/bin/bash

  48-mysql:x:1003:979::/home/mysql:/sbin/nologin

  49:gentoo:x:1004:1004::/tmp/gentoo:/bin/bas

  显示匹配到行的前面几行和后面几行:-C#。#是数字

  #grep-nC1gentoo/etc/passwd

  48-mysql:x:1003:979::/home/mysql:/sbin/nologin

  49:gentoo:x:1004:1004::/tmp/gentoo:/bin/bash

  50-fedora:x:1005:1005::/tmp/fedora:/bin/bash

  字符匹配

  .:匹配任意单个字符

  #grep-n"f..ora"/etc/passwd

  50:fedora:x:1005:1005::/tmp/fedora:/bin/bash

  #grep"f.ora"/etc/passwd

  #

  []:匹配指定范围内的任意单个字符,中间不用逗号分隔

  [^]:匹配指定范围外的任意单个字符

  [:digit:],[:lower:],[:upper:],[:alpha:],[:alnum:],[:punct:],[:space:]

  例子:匹配r和t之间,是2个字母的行。

  #grep"r[[:alpha:]][[:alpha:]]t"/etc/passwd

  root:x:0:0:root:/root:/bin/bash

  operator:x:11:0:operator:/root:/sbin/nologin

  匹配次数:默认是贪婪模式,匹配到后,还会一直继续匹配下去,直到匹配不到了才停。

  结束语:以上就是有关Linux文本处理三大方法之grep的全部内容,更多内容请关注学步园。

  

抱歉!评论已关闭.