grep使用总结

回复 收藏
本帖最后由 ifisis 于 2016-3-31 22:03 编辑

文本处理工具之grep

grep: (global search regular expression(RE) and print out the line

文本搜索工具,根据用户指定的文本模式,对目标文件进行逐行搜索,显示能够被模式所匹配到的行

格式:grep [options] 'PATTERN' file,...
        --color=auto

grep 常用选项:
        -v: 反向,显示不能被模式所匹配到的行;
        -o: 仅显示被模式匹配到的字串,而非整行;
        -i: 不区分字符大小写, ignore-case
        -E: 支持扩展的正则表达式
        -A # 之后的共#号行一起显示
        -B # 之前的共#号行一起显示
        -C # 之前之后共#号行一起显示

正则表达式:是一类字符所书写出的模式(pattern)
元字符:不表示字符本身的意义,用于额外功能性的描述

基本正则表达式和扩展正则表达式

基本正则表式的元字符:grep -E

字符匹配:
.: 任意单个字符
[]: 指定范围内的任意单个字符
[0-9], [[:digit:]]
[a-z], [[:lower:]]
[A-Z], [[:upper:]]
[[:alpha:]] 大小写字母
[[:alnum:]] 所有数字字母
[[:space:]] 空白字符
[[:punct:]] 特殊符号


[^]:指定范围外的任意单个字符
次数匹配:用来指定匹配其前面的字符的次数
*: 任意次
.*: 匹配任意长度的任意字符
\?: 0次或1次  x\?y, xy, y, xxy

贪婪模式:尽可能的长的去匹配字符;
\{m\}: 匹配m次
\{m,n\}:
\{m,\}: 至少m次;
\{0,n\}:至多n次;
位置锚定:用于指定字符出现的位置
^: 锚定行首 ^Char
$: 锚定行尾
\: 锚定词尾,
               
分组:
        \(\)
        \(ab\)*xy
        引用:
        \1: 后向引用,引用前面的第一个左括号以及与之对应的右括号中的模式所匹配到的内容

1、显示/proc/cpuinfo文件中以大小写c开头的行;
grep -i '^c' /proc/cpuinfo
2、取出默认shell为非nologin的用户;
grep 'nologin$' /etc/passwd | cut -d: -f1
3、取出默认shell为bash的且其ID号最大的用户;
grep "bash$" /etc/passwd | sort -n -t: -k3 | tail -1 | cut -d: -f1
4、显示/etc/rc.d/rc.sysinit文件中,以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
grep '^#[[:space:]]\{1,\}[^[:space:]]\{1,\}' /etc/rc.d/rc.sysinit
5、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
grep '^[[:space:]]\{1,\}' /boot/grub/grub.conf
6、找出/etc/passwd文件中两位数;
grep '[0-9]\{2\}' /etc/passwd
7、找出ifconfig eth0命令结果中的1到255之间的整数;
ifconfig eth0 | grep -E --color=auto "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"
8、查看当前系统上root用户的所有信息;
grep "^root\>" /etc/passwd
9   找出当前系统上其用户名和默认shell相同的用户;
grep --color=auto "^\([[:alnum:]]\{1,\}\)\>.*\1$" /etc/passwd
10、找出netstat -tan命令执行的结果中以“LISTEN”或“ESTABLISHED”结尾的行;
netstat -tan | grep -E '\'
11、取出当前系统上所有用户的shell,要求:每种shell只显示一次,且按升序显示;

cut -d: -f7 /etc/passwd | sort -u

2016-03-09 16:22 举报
已邀请:
0

杨金彪

赞同来自:

+1
0

kingleoric

赞同来自:

收藏了
0

hammel

赞同来自:

{:7_229:}
0

阿凯

赞同来自:

嘻嘻

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: