欢迎光临
我们一直在努力

linux系统下grep与grep命令的使用

基本正则表达式元字符

  1. 字符匹配:
  2.                 .:匹配任意单个字符
  3.                     grep “r..t” /etc/passwd
  4.                     []:匹配指定范围内任意单个字符
  5.                     [^]:匹配指定范围外任意单个字符
  6.                         [:lower:] [:upper:] [:alpha:] [:alnum:] [:punct:] [:space:]
  7.                     grep “r[[:alpha:]][[:alpha:]]t”
  8.             匹配次数:写在要指定其出现次数的字符的后面
  9.                 *:匹配其前面的字符任意次 0,1,多次
  10.                     grep “x\+y”
  11.                         abxy
  12.                         aby
  13.                         xxxxxy
  14.                         yab
  15.                 .*: 匹配任意长度的任意字符
  16.                 \?:匹配其前字符0次或1
  17.                 \+:匹配其前的字符1次或多次,即字符出现至少1
  18.                 \{m\}:匹配其前字符m次
  19.                 \{m,n\}:匹配其前字符至少m次,至多n次
  20.                 \{0,n\}:至多n次
  21.                 \{m,\}:至少m次
  22.             位置锚定:
  23.                 ^:行首锚定 写在模式最左侧
  24.                 $:行尾锚定 写在模式最右侧
  25.                 ^PATTERN$:用于PATTERN来匹配整行;
  26.                     ^$:空白行;
  27.                     ^[[:space:]]*$:空行或包含空白字符的行;
  28.                     \< 或 \b:词首锚定,用于单词模式的左侧;
  29.                     \> 或 \b:词尾锚定,用于单词模式的右侧;
  30.                     \<PATTERN\>:匹配完整单词;
  31.                 单词:非特殊字符组成的连续字符(字符串)都称为单词;
  32.             分组及引用
  33.             \(\):将一个或多个字符捆绑在一起,当作一个整体进行处理 反斜线表示转义
  34.                 \(xy\)*ab
  35.                 Note:
  36.                     分组括号中的模式匹配到的内容会被正则表达式引擎自动记录于内部的变量中,这些变量为:
  37.                     \1:模式从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符;
  38.                     \2:模式从左侧起,第二个左括号以及与之匹配的右括号之间的模式所匹配到的字符;
  39.                     \3
  40.                     …

grep命令

  1. 作用:文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查;打印匹配到的行;
  2.   模式:由正则表达式的元字符及文本字符所编写出的过滤条件;    grep  [OPTIONS]  PATTERN  [FILE…]
  3.   grep  [OPTIONS]  [-e PATTERN | -f FILE]  [FILE…]
  4.       OPTIONS:
  5.           –color=auto:对匹配到的文本着色后高亮显示;
  6.           -i: ignorecase 忽略字符大小写
  7.           -o: 仅显示匹配到的字符串本身
  8.           -v: invert-match 反向匹配 显示未被匹配到的行
  9.           -E:支持使用扩展的正则表达式元字符;
  10.           -q: –quiet, –silent:静默模式,即不输出任何信息;
  11.           -A #:after, 后#行
  12.           -B #:before,前#行
  13.           -C #:context,前后各#行

egrep命令

  1. 支持扩展的正则表达式实现类似于grep文本过滤功能;grep -E
  2. egrep [OPTIONS] PATTERN [FILE…]
  3.         选项:
  4.             -i, -o, -v, -q, -A, -B, -C
  5.             -G:支持基本正则表达式
  6.         扩展正则表达式的元字符:
  7.             字符匹配
  8.                 .: 任意单个字符
  9.                 []:指定范围内的任意单个字符
  10.                 [^]:指定范围外的任意单个字符
  11.             次数匹配
  12.                 *:任意次 0,1,多次
  13.                 ?:0次或1
  14.                 +:其前字符至少1
  15.                 {m}:其前字符m次
  16.                 {m,n}:其前字符至少m次至多n次
  17.                     {0,n}
  18.                     {m,}
  19.             位置锚定
  20.                 ^ 行首锚定
  21.                 $ 行尾锚定
  22.                 \< \b 词首锚定
  23.                 \> \b 词尾锚定
  24.             分组及引用
  25.                 (): 分组 括号内的模式匹配到的字符会被记录于正则表达式引擎的内部变量中
  26.                 后向引用:\1, \2, …
  27.             或
  28.                 a|b:a或者b;
  29.                 C|cat:C或cat
  30.                 (c|C)at:cat或Cat

显示/proc/meminfo文件中以大写或小写S开头的行

  1. grep “^[sS]” /proc/meminfogrep -i “^s” /pro/meminfo

显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户

  1. grep -v “/sbin/nologin$” /etc/passwd | cut -d: -f1

显示/etc/passwd文件中其默认shell为/bin/bash的用户

  1. grep “/bin/bash” | cut -d: -f1

找出/etc/passwd文件中的一位数或两位数

  1. grep -o  “\<[0-9]\{1,2\}\>” /etc/passwd

显示/boot/grub/grub.conf中以至少一个空白字符开头的行

  1. grep “^[[:space:]]\+” /boot/grub2/grub.cfg

显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行

  1. grep “^#[[:space:]]\+[^[:space:]]\+” /boot/grub2/grub.cfg

打出netstat -tan命令执行结果中以‘LISTEN’,后跟空白字符结尾的行

  1. netstat -tan | grep ‘LISTEN[[:space:]]\+$’

添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息

  1. grep -E “^([^:]+).*\1$” /etc/passwd
赞(0) 打赏
未经允许不得转载:运维那些事 » linux系统下grep与grep命令的使用

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏