linux系统点正则表达式,LINUX系统学习之正则表达式

一、正则表达式

在计算机科学中,正则表达式是用来描述或匹配一系列符合某个句法规则的字符串;在文本编辑器或某些工具(例如bash环境)中,正则表达式通常被用检索那些符合某个模式的文本内容。在linux中,正则表达式是由一类字符所书写的模式。通过实现定义好的模式来实现对bash环境中所需要字符串的过滤。

正则表达式是由一系列的普通字符和一些元字符组成。普通字符主要包括了大小写字母和数字。元字符则具有特殊的含义。它不表示字符本身的意义而用于额外的一些功能性的描述。正则表达式有基本正则表达式和扩展正则表达式之分,下面我将列出在linux中常用的一些常用的元字符,并用相关的实例来进行讲解:

1.基本正则表达式

0818b9ca8b590ca3270a3433284dd417.png

2.扩展正则表达式

以下主要列出不同于基本正则表达式的部分元字符

0818b9ca8b590ca3270a3433284dd417.png

3.在linux中还有其它的一些转义字符,但这里仅对常用的进行了一些列举和解释。有兴趣的朋友可以通过“man 7 regex”查看man文档中提供的帮助系统。

二、grep命令的使用

下面我来向大家介绍如何通过grep命令来使用正则表达式进行相应的模式匹配。首先我来介绍一下grep命令的基本使用。

grep (Global Search Regular Expression and Printing),表示全面搜索正则表达式并进行打印,是一种强大的文本搜索工具,它能够使用正则表达式搜索文本,并把匹配的行打印出来。grep有三种,包括grep、egrep和fgrep。

分别表示如下:

0818b9ca8b590ca3270a3433284dd417.png

三、以下我将在rhel6.4上使用具体的实例来显示grep命令如何使用正则表达式来进行模式匹配。

使用前在当前bash中对grep设置一个别名,命令如下:

alias grep='grep --color=auto'

1.显示/etc/passwd文件中以不区分大小写的s开头的行。

grep "^[sS]" /etc/passwd

egrep "^(s|S)" /etc/passwd

2.显示默认shell为bash,且其用户ID号最小的用户的用户名。

grep "/bin/bash$" /etc/passwd | sort -n -t: -k3 | cut -d: -f1

3.显示/etc/rc.d/rc.sysinit中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行。

grep "^#[[:space:]]\{1,\}[^[:space:]]" /etc/rc.d/rc.sysinit

egrep "^#[[:space:]]+[^[:space:]]" /etc/rc.d/rc.sysinit

4.显示/etc/rc.d/rc.sysinit中符合任意单个字符后面跟了个n,n后面有任意长度的任意字符,而后是任意单个字符后面跟了个n,但后面的n之前的字符要与前面的n之前的字符相同。

grep "\(.n\)".*\1" /etc/rc.d/rc.sysinit

5.显示test.txt文件中的,1位数,或2位数。

grep -w "[0-9]\{1,2\}" test.txt

grep "\" test.txt

6.显示ifconfig命令结果中的1-255之间的整数。

ifconfig | egrep "\"

7.匹配ifconfig命令中的IP地址,要求匹配范围为1.0.0.1~~223.255.255.254

ifconfig | egrep -o --color "\"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值