`
wx1569063608
  • 浏览: 22648 次
文章分类
社区版块
存档分类
最新评论

linux的正则表达式

 
阅读更多

在介绍正则表达式之前,必须先解释下与linux通配符的关系。通配符代表的是bash操作接口的一个功能,而正则表达式是一种字符串处理的表达方式。

基本的正则表达式:

元字符:

. :匹配任意多个字符

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

[^]:匹配指定范围外的任意单个字符

[:digit:]、[:alpha:]、[:alnum:]、[:lower:]、[:upper:]、[:space:]、[:punct:]

匹配次数:

* :匹配其前面的字符任意次

\? : 匹配其前面的字符0次或者1次

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

位置锚定:

^:此字符后面的任意内容必须出现在行首

$  : 此字符前面的任意内容必须出现在行尾

^$ 空白行

\<或\b :锚定词首,此字符后面的任意内容必须出现在行首

\>或\b:锚定词尾,此字符前面的任意字符必须作为单词的尾部出现

分组:\(\)     例如 \(ab\)*,这里存在一个后向引用的问题\1引用第一个左括号以及与之对应的右括号所包括的所有内容 \2、\3以此类推。 

扩展正则表达式:

元字符:没有区别   . 、[]、[^]、以及类似的集合文件:[:digit:]、[:alpha:]、[:upper:]、[:lower:]、[:alnum:]、[:space:]

次数匹配:*、?

不同之处:+ 匹配其前面的字符1次或者多次

{m.n}:这里不需要加'\'

位置锚定:^$  \<   \>  

不同之处:分组:()  \1,  \2,  \3

或者|: or

grep:

扩展的是egrep = grep -e

grep [options] PATTERN [FILE...]

-i 忽略大小写    --color   -v显示没有没模式匹配到的行   -o只显示被模式匹配到的字符串

-E 使用扩展正则表达式  -A# :列出该行以后的#行    -B#:列出该行以前的#行  -C#:列出该行前后的#行

此前我已经在本地目录下alias grep='grep --color' ,然后source  .bashrc

1.查找/proc/meminfo文档中以字母s开头的文档,不区分大小写

grep -i  '^s'  /proc/meminfo

2.显示/etc/passwd文档中以/sbin/nologin结尾的行

grep  '/sbin/nologin$'  /etc/passwd

3.取出默认shell为bash,且其用户ID号最小的用户的用户名

grep '.*bash$' /etc/passwd | sort -n -t : -k3 | cut -d : -f1 | head -n 1

4. 显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行

grep ':[[:digit:]]:' /etc/inittab

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

grep '^[[:space:]]\{1,\}'  /boot/grub/grub.conf

6.显示/etc/inittab文件中以一个数字开头并以一个与开头数字相同的数字结尾的行

grep '^\([[:digit:]]\).*\1$' /etc/inittab

7.显示/proc/cpuinfo文件中的一位数和两位数

grep -E '[[:digit:]]{1,2}' /proc/cpuinfo

8.找出ifconfig命令结果中1-255之间的整数

ifconfig | grep -E '\<([[:digit:]]|[1-9][[:digit:]]|1[[:digit:]]{2}|2[0-4][[:digit:]]|25[0-5])\>'

9.分析/etc/inittab文件中如下文本中前两行的特征(每一行中出现在数字必须相同),请写出可以精确找到类似两行的模式:
l1:1:wait:/etc/rc.d/rc 1
l3:3:wait:/etc/rc.d/rc 3

grep '^l\([[:digit:]]\):\1.*\1$' /etc/inittab

转载于:https://my.oschina.net/alfredliukai/blog/488344

分享到:
评论

相关推荐

    Linux正则表达式.pdf

    Linux正则表达式.pdf 本文档主要介绍了 Linux 系统中的正则表达式的概念、历史、定义和应用。正则表达式是一种字符串匹配模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个...

    绝对有用的linux正则表达式案例

    绝对有用的LINUX正则表达式使用,包含awk,sed,cut,tr等使用技巧,希望大家喜欢!

    linux 正则表达式

    用PPT写的linux 正则表达式,非常好的学习linux的资料

    Linux正则表达式

    [Linux基础]_05_常用的文本过滤工具 Linux正则表达式 三种表达方式

    老男孩老师-Linux正则表达式实战 学习笔记

    根据老男孩老师视频教程《Linux正则表达式实战》的精彩讲解,进行了学习笔记记录,主要讲解Linux三剑客中的grep用法、捎带sed的讲解笔记。 学习笔记进行了规整,相信Linux运维工作者能够一目了然笔记的内容。 (1...

    Linux正则表达式技术指南

    ### Linux正则表达式技术指南 #### 正则表达式基础与应用场景 在Linux系统中,正则表达式(Regular Expression)是一种强大的文本处理工具,它可以帮助用户进行精确的字符串匹配、查找、替换等操作。正则表达式...

    linux系统shell正则表达式-练习工具和教材

    在IT领域,Linux系统Shell和正则表达式是两个至关重要的工具,它们在日常的系统管理、数据分析和脚本编写中发挥着巨大的作用。本文将深入探讨Linux Shell下的正则表达式,包括其基本概念、元字符、模式匹配以及常用...

    linux正则表达式详解

    ### Linux正则表达式详解 在Linux环境下,正则表达式是一种非常强大的文本处理工具,广泛应用于各种场景,如文件搜索、数据匹配等。本文将详细介绍Linux正则表达式的使用方法及其背后的逻辑。 #### 正则表达式基础...

    正则表达式调试工具

    正则表达式(Regular Expression,简称regex)是用于在文本中匹配特定模式的强大工具,广泛应用于数据验证、搜索替换和文本处理等领域。正则表达式调试工具是开发人员用来测试和优化这些模式的重要辅助工具。本文将...

    Linux中几个正则表达式的用法.doc

    以下将详细介绍文件标题和描述中涉及的几个Linux正则表达式用法: 1. **查找IPv4地址**: 使用`ifconfig`命令获取网络接口配置,通过管道`|`传递给其他命令处理。`head -n 2 | tail -1`用于获取第一行非标题行,...

    Linux在合集中使用正则表达式来匹配查找.zip

    在Linux系统中,正则表达式(Regular Expression)是一种强大的文本处理工具,它能用于匹配、查找、替换等操作,广泛应用于数据提取、文件搜索、脚本编程等多个领域。本合集主要围绕如何在Linux环境下利用正则表达式...

    Linux下的C语言正则表达式

    ### Linux下的C语言正则表达式使用详解 #### 引言 正则表达式作为一种强大的文本处理工具,广泛应用于各种编程语言中。对于C语言来说,尽管标准库并不直接支持正则表达式的操作,但可以通过引入第三方库来实现这一...

    Tcl/tk 宝典之二 - 正则表达式参考

    * 正则表达式不仅用于程序开发,还广泛应用于 Unix/Linux 系统管理中 知识点二:正则表达式的基本概念 * 正则表达式是利用 26 个英文字符与一些特殊符号的配合来进行文字内容比对的方法 * 正则表达式中,26 个英文...

    正则表达式详细介绍

    在Linux和Unix环境中,正则表达式常用于命令行工具,如grep、sed和awk等。在这些环境中,正则表达式广泛用于文本处理和自动化任务的脚本编写。 综上所述,正则表达式是文本处理中不可或缺的工具。通过理解正则...

    文件路径的正则表达式

    其中包括windows和linux文件路径的正则表达式;去除空格和斜杠转换的replaceall方法

    最小的C++正则表达式库

    《最小的C++正则表达式库:高效与便携性的完美融合》 在软件开发领域,正则表达式作为一种强大的文本处理工具,被广泛应用于数据验证、文本搜索和替换等场景。对于C++程序员来说,找到一个轻量级、跨平台且功能强大...

Global site tag (gtag.js) - Google Analytics