文本处理三剑客 grep
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文本处理三剑客 grep相关的知识,希望对你有一定的参考价值。
Grep (基于行的过滤)--color=auto 关键字高亮显示
命令选项:
? -v: 显示不被pattern匹配到的行
? -i: 忽略字符大小写
? -n:显示匹配的行号
? -c: 统计匹配的行数
? -o: 仅显示匹配到的字符串
? -q: 静默模式,不输出任何信息
? -A #: after, 后#行
? -B #: before, 前#行
? -C #:context, 前后各#行
? -e:实现多个选项间的逻辑or关系 grep –e ‘cat ’ -e ‘dog’ file ? -w:匹配整个单词 ? -E:使用ERE ? -F:相当于fgrep,不支持正则表达式
正则表达式:需加双引号或单引号
文件名通配符当中 * 表示 0或多个任意字符 ? 表示任何一个单一字符
正则当中字符匹配:
. 表示任何字符
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] 小写字母 [a-z]
[:upper:] 大写字母 [A-Z]
[:blank:] 空白字符(空格和制表符)
[:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广)
[:cntrl:] 不可打印的控制字符(退格、删除、警铃...)
[[[
[:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
[A-Z0-9] 表示大写字母或数字
次数匹配
匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数
* 匹配前面的字符任意次,包括0次
贪婪模式:尽可能长的匹配
.* 任意长度的任意字符
? 匹配其前面的字符0或1次
+ 匹配其前面的字符至少1次
{n} 匹配前面的字符n次
{m,n} 匹配前面的字符至少m次,至多n次
{,n} 匹配前面的字符至多n次
{n,} 匹配前面的字符至少n次
位置锚定:定位出现的位置
^ 行首锚定,用于模式的最左侧
$ 行尾锚定,用于模式的最右侧
^PATTERN$ 用于模式匹配整行
^$ 空行
^[[:space:]]$ 空白行
grep -v "^[[:space:]]$" passwd 去除文件中的空白行
< 或 词首锚定,用于单词模式的左侧
> 或 词尾锚定;用于单词模式的右侧
<PATTERN> 匹配整个单词
Ifconfig 查ipv4地址:
ifconfig |grep "^ens33" -A1 |grep -o inet."[[:digit:]].[[:digit:]].[[:digit:]].[[:digit:]]"
1、 显示/proc/meminfo文件中以大小s开头的行(要求:使用两种方法)
grep -i "^s" /proc/meminfo -i 不区分大小写
grep -e ^s -e ^S /proc/meminfo -e 或
2、 显示/etc/passwd文件中不以/bin/bash结尾的行
grep -v "/bin/bash$" -v 显示不被匹配的行
3、 显示用户rpc默认的shell程序
grep "^<rpc>" /etc/passwd |cut -d: -f7 行首锚定^ <rpc> 匹配整个单词 正则表达式需“”号 然后输入路径 管道符| 最后cut -d:指明分隔符:抽取第7列
4、 找出/etc/passwd中的两位或三位数
-o: 仅显示匹配到的字符串
grep -o "[0-9]{2,3}" /etc/passwd {2,3}表示匹配前面的字符(0-9)至少m次,至多n次
5、 显示CentOS7的/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面 存非空白字符的行
grep ^"[[:blank:]]+"[[:graph:]] /etc/grub2.cfg
6、 找出“netstat -tan”命令的结果中以‘LISTEN’后跟任意多个空白字符结 尾的行
netstat -tan|grep "<LISTEN>[[:blank:]]*"
7、 显示CentOS7上所有系统用户的用户名和UID
grep -v "[[:digit:]]"{4} /etc/passwd|cut -d: -f1,3
8、 添加用户bash、testbash、basher、sh、nologin(其shell为 /sbin/nologin),找出/etc/passwd用户名同shell名的行
9、利用df和grep,取出磁盘各分区利用率,并从大到小排序
df |tr -s " "|cut -d" " -f5,6|sort -r
以上是关于文本处理三剑客 grep的主要内容,如果未能解决你的问题,请参考以下文章