linux grep 基本正则表达式与扩展正则表达式使用解析

简介:

成功的秘诀很简单=开始+坚持

接下来介绍grep和基本的正则表达式:

当大家需要从某个文本中,或者信息中检索数据时就要用上grep了

先介绍下grep的基本语法

 

grep [options] ‘pattern’ file

常用选项:

-i     不区分字符大小写;

-v     反向选取,只显示不匹配模式的行;

-o    只显示被模式匹配到的字符串

-E     使用扩展的正则表达式 grep -E = egrep

--color=auto 把匹配到的项,显示红色。

常用的也就这几个,如果大家要获取更多,请自行man grep。

 

元字符的介绍:

^    行首锚定符,用法格式 "^pattern"

$    行尾锚定符,用法格式 "pattern$"

.     匹配任意单个字符

*    匹配紧挨在其前面的字符任意次

.*   匹配任意长度的任意字符

[ ]   匹配指定范围内的任意单个字符

\?   匹配紧挨在其前面的字符0次或1次

\{m,n\}  匹配其前面的字符至少m次至多n次

\{0,n\}   至多n次

\{m,\}    至少m次

\{m\}    精确m次

\<    锚定词首,用法格式:\<pattern

\>    锚定词尾,用法格式:pattern\>

接下来举几个例子:

1、显示/proc/meminfo文件中以不区分大小写的s开头的行;

#    grep -i   "^s"  /proc/meminfo

wKiom1NQrZeQHRAOAADEDvUhq8A148.jpg

2、显示当前系统不能登录shell的用户;

#    grep "/sbin/nologin\>" /etc/passwd

wKioL1NQrv6xJJ0-AAGNBHGe0_Y580.jpg

看到没,这里用的\>词尾锚定。

3、显示shell为bash,且其用户ID号最小的用户的用户名;

#   grep "bash\>" /etc/passwd |sort -t: -k3 | head -n 1

wKiom1NQshKB4N_HAACOF1EjAms175.jpg

4、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;

#    grep '^[[:space:]]\{1,\}

wKiom1NQt9igpxrzAAEaz4srMJk740.jpg

5、ifconfig eth0 只取出IP地址;

#    ifconfig eth0 | grep -o 'inet addr:[^[:space:]]* | cut -d: -f2

wKioL1NQuaryKHEgAAB0PpPzA7s379.jpg

6、查找当前系统上名字为student的用户帐户相关信息;

#    grep "^student:"  /etc/passwd

wKioL1NQuy3QrpqGAAB4HIdE25U824.jpg

7、显示/proc/cpuinfo中的processor开头且后面跟了至少1个空白字符的行,而后统计相关行数。

# grep "^processor[[:space:]]\{1,\}" /proc/cpuinfo | cat -n

wKiom1NQvZvgpKJJAACaUj-Maqg606.jpg

这里后面管道也可以跟 wc -l 来统计行数。

好累啊!  今天就写到这了,以后再做补充。


本文转自qw87112 51CTO博客,原文链接:http://blog.51cto.com/tchuairen/1397819


相关文章
|
4天前
|
Linux Shell 网络安全
LabVIEW NI Linux Real-Time深层解析
LabVIEW NI Linux Real-Time深层解析
10 0
|
3天前
|
Linux
linux中wait与waitpid函数使用场景及扩展
linux中wait与waitpid函数使用场景及扩展
|
3天前
|
监控 Linux 数据处理
|
5天前
|
Linux 编译器 调度
xenomai内核解析--双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务
本文介绍了如何将POSIX应用程序编译为在Xenomai实时内核上运行的程序。
22 1
xenomai内核解析--双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务
|
5天前
|
算法 Linux 调度
xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程
xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程
10 1
xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程
|
5天前
|
Linux 调度 数据库
|
5天前
|
存储 缓存 Linux
xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(三)--实时与非实时数据交互
本文介绍了Xenomai中的XDDP(Xenomai Distributed Data Protocol)通信机制,XDDP用于实时和非实时进程之间的数据交换。XDDP在Xenomai内核中涉及的数据结构和管理方式,以及创建XDDP通道后的实时端和非实时端连接过程。
9 0
xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(三)--实时与非实时数据交互
|
6天前
|
运维 监控 安全
linux常见问题解析
linux常见问题解析
19 1
|
8天前
|
Linux 网络安全 数据库
linux centos系统搭建samba文件服务器 NetBIOS解析 (超详细)
linux centos系统搭建samba文件服务器 NetBIOS解析 (超详细)
|
8天前
|
域名解析 存储 缓存
Linux中搭建DNS 域名解析服务器(详细版)
Linux中搭建DNS 域名解析服务器(详细版)