Linux 之正则表达式

抱怨只是无能的表现,无它。      ——马哥,永远都是正能量

  • 正则表达式:

    • 理解:由元字符及正常字符拼凑的一中模式,根据目标字符或字符串的某些特征总结出来的对应的“公式”
    • 作用:可用于文件查找,模式匹配等等
    • 字符匹配:
      • .:匹配任意单个字符
      • []:匹配指定范围内的任意单个字符
      • [^]:匹配指定范围外的任意单个字符的
    • 次数匹配:
      • *:其左侧的字符出现任意次
      • .*:任意长度任意字符
      • \?:其左侧的字符出现0次或1此
      • \+:其左侧的字符出现1次或多次
      • \{m\}:精确匹配其左侧的字符出现m此
      • \{m,n\}:匹配其左侧字符至少出现m次,至多出现n次
    • 位置锚定:
      • ^:锚定行首
      • $:锚定行尾
      • \<:锚定词首
      • \>:锚定词尾
      • ^$:匹配空白行,包括行中只有空格和制表符的行!!!
      • \(\):分组。这个感觉比较高大尚。分组模式中,在某次匹配过程中所匹配到的字符,被grep暂时记忆(保存到内置变量\1,\2,...中),故而
      • \1:引用自左向右的第一个括号以及与之对应的又括号中的内容
  • 练习如下:
    • 找出/proc/meminfo文件中以大写S或小写s开头的行:

      • grep --color=auto "[^sS]" /proc/meminfo
    • 显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户及默认shell
      • grep -v "/sbin/nologin$" /etc/passwd | cut -d: -f1,7
    • 显示/etc/passwd文件中的一位数或两位数(不包括三位及三围以上数字)
      • grep "\<[0-9]\{1,2\}\>" /etc/passwd
    • 显示/boot/grub/grub.conf文件中至少以一个空白字符开头且后跟i字符的行
      • grep "^[[:space:]]\+i" /boot/grub/grub.conf
    • 找出系统上其用户名和默认shell相同的用户的信息
      • grep "^\([[:alnum:]]\>\).*\1$" /etc/passwd
    • d
时间: 2024-08-04 15:00:17

Linux 之正则表达式的相关文章

Linux Basics 正则表达式 grep

grep全称是:Global search Regular Expression and Printing全局搜索正则表达式并显示出来 使用正则表达式来描述选择条件. 取行选择:选取行的筛选条件,给定选取条件,只显示符合条件的行,或者只显示不符合条件的行. 对于类似的操作有三个命令:grep; egrep; fgrep grep:默认支持基本正则表达式: egrep:扩展正则表达式: fgrep:不支持正则表达式元字符,搜索字符串的速度快: 正则表达式是一类字符所书写的模式(pattern)  

linux之正则表达式

文件查找的需要: grep:(GLOBAL Research) 根据模式(网)去搜索文本,而后将符合模式的文本行显示出来. [部分匹配,显示时显示一行] Pattern:模式.(文本字符以及正则表达式元字符组合而成的匹配条件) 例子:grep  'root' /etc/passwd grep所支持的选项: -i:忽略大小写 --color 显示颜色 alias grep='grep --color' -v: 反向查找,显示没有被模式匹配的行 -o:只显示被模式匹配出来的字符串,每个字符串显示为一

Linux shell 正则表达式用法

1.“ \  ” 用法 用于关闭其后续字符的特殊含义,恢复字符的本身含义,如:\\ 表示字符 \ 2. “ . " 用法 匹配任意单个字符 3. " * " 用法 匹配任意字符,可以是单个,也可以是多个,和 ”.“ 字符的去吧是是否可以匹配多个任意字符 4. "^" 的用法 在行的起始处开始匹配紧接着的字符,如 ^6,匹配行的首字符为6的行. 5." $ " 的用法 和 “^” 用法相似,表示在行的结尾处开始匹配字符,如 6$,匹配行的

linux中正则表达式的使用方法

大家好,欢迎你们来到我的博客,作为一个博客新手,这是我第一次发帖子,希望接下来的时间我们能够在linux的学习中互帮互助,共同进步! 好了,废话不多说,回归正题,今天我将要介绍的是非常强大的文本搜索工具--grep. grep的全称为:Globel Search Regular Expression and Printing out the line(全局搜索正则表达式并把行打印出来).它最重要的功能根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,然后将符合要求的字符串打印出来,但必须

linux学习---正则表达式与grep

正则表达式(Regular Expression(RE)) 是透过一些特殊字符的排列, 用以"搜寻/取代/删除"一列或多列文字字符串, 简单的说, 正则表达式就是用在字符串的处理上面的一项"表达式". 正则表达式并不是一个工具程序, 而是一个字符串处理的标准依据, 如果想要用用正则表达式处理字符串, 就要使用支持正则表达式的工具程序, 这样的程序有很多, 如vi, awk, grep, sed... grep 基本规则: grep [-acinv] [--color

一个简单的例子区分linux shell 正则表达式中的 *,+,?

1,linux shell 正则表达式 *和+号的区别 例子记忆: [[email protected] data]# touch test.txt[[email protected] data]# cat>>test.txt<<EOF> gooood> goood> good> god> gd> EOF * 表示重复前面字符0次或多次 [[email protected] data]# grep "go*d" test.tx

linux基础正则表达式、shell基础、文件查找和压缩

linux基础正则表达式.shell基础.文件查找和压缩 1.shell编程显示电脑的基本信息,初级基础脚本.只适合6.7版本的. COLOR="\033[1;36m" COLOREND="\033[0m" echo -e "CPU type is $COLOR `lscpu |grep 'Model name'|tr -s ' '|cut -d: -f2`$COLOREND" echo -e "Disk space is $COLOR

linux下正则表达式

正则表达式 1.用du -sh /* 查看根下所有目录占用的内存是多少 2.lsof -i :22 查看22端口 3.清空文件,cat /dev/null>access_log清空一个文件 4.如果在oldboy/ett目录下在创建一个目录,那么/oldbot/ett的硬链接数是多少,为什么? 2个,因为子目录下的..是父目录的硬链接 5检测一个命令是否是内置命令:type 命令名称 Linux的多用户多任务介绍: 1.用户的身份是用UID(useridentify)和GID(groupiden

(021) Linux之正则表达式

十年运维系列之基础篇 - Linux 作者:曾林 联系:[email protected] 网站:www.jplatformx.com 版权:文章未经同意请勿转载 一.引言 简单地说,正则表达式是一种符号表示法,用来识别文本模式.在某种程度上,他们类似于匹配文件和路径名时使用的shell通配符,但其用途更广泛.许多命令行工具和大多数编程语言都支持正则表达式,以此来解决文本操作方面的问题.然而,在不同的工具,以及不同的编程语言之间,正则表达式都会略有不同,这让事情进一步麻烦起来.方便起见,我们将正

【那年那人那linux】“正则表达式”初窥之二则问题

始于linux学习过程中欲检测学习效果,同学推荐了两道正则表达式的题目.这两道题目字数不多,但却引发了我的一段思考.操作环境CentOS6.7 2.6.32-573.22.1.el6.x86_64 现题目整理如下: [第一则] 请使用正则表达式与sed命令将/etc/passwd内的第一个单词与最后一个单词置换.例如: sc:x:891:809::/home/sc:/bin/bash #操作之前 bash:x:891:809::/home/sc:/bin/sc #操作之后 [第二则] 请使用正则