linux学习之grep egrep 命令及正则表达式

有幸在马哥面授班学习linux,马哥常告诉我们要做就做到最好,希望通过这些博文把自己的学习经历和内容好好的记录下来,也算是复习。

grep: Global search REgular expression and Print out the line.

文本搜索工具,根据用户指定的“模式(pattern)”对目标文本进行过滤,显示被模式匹配到的行。

grep [OPTION]... ‘PATTERN‘ FILE...
  --color

正则表达式:由一类字符书写的模式,其中有些字符不表示字符的字面意义,而是表示控制或通配的功能;
  元字符:

两类:
   基本正则表达式
   扩展正则表达式

基本正则表达式:
  字符匹配:
    .: 匹配任意单个字符
   []:匹配指定集合中的任意单个字符
      [[:digit:]], [0-9]
      [[:lower:]], [a-z]
      [[:upper:]], [A-Z]
      [[:alpha:]], [a-zA-Z]
      [[:alnum:]], [0-9a-zA-Z]
      [[:space:]],空白字符
      [[:punct:]],标点符号
   [^]:匹配指定集合外的任意单个字符
  匹配次数:用于对其前面紧邻的字符所能够出现的次数作出限定
   *: 匹配其前面的字符任意次,0,1或多次;
    例如:grep ‘x*y‘
     xy, xxy, xxxy, y
   \?:匹配其前面的字符0次或1次;
    例如:grep ‘x\?y‘
     xy, xxy, y, xxxxxy, aby
   \+: 匹配其前面的字符出现至少1次;
   \{m\}: 匹配其前面的字符m次;
    例如:grep ‘x\{2\}y‘
     xy, xxy, y, xxxxxy, aby
   \{m,n\}:匹配其前面的字符至少m次,至多n次;
    例如: grep ‘x\{2,4\}y‘
      xy, xxy, y, xxxxxxy, aby
       grep ‘x\{0,4\}y‘
        xy, xxy, y, xxxxxxxxxy, aby
       grep ‘x\{2,\}y‘
        xy, xxy, y, xxxxxy
   .*: 匹配任意长度的任意字符
  位置锚定:
   ^: 行首锚定
    写在模式的最左侧
   $: 行尾锚定
    写在模式的最右侧
   ^$: 空白行

\<: 词首锚定, 或\b
    出现在要查找的单词模式的左侧;\<char
   \>:词尾锚定, 或\b
    出现在要查找的单词模式的右侧;char\>
   \<pattern\>: 匹配单词
  分组: \(\)同时匹配多个字符

例如:‘ab\{1,3\}x‘  可以匹配abx  abbx   abbbx

‘\(ab\)\{1,3\}x‘ 可以匹配abx  ababx  abababx

后向引用:模式中,如果使用\(\)实现了分组,在某行文本的检查中,如果\(\)的模式匹配到了某内容,此内容后面的模式中可以被引用;
    \1, \2, \3
    模式自左而右,引用第#个左括号以及与其匹配右括号之间的模式匹配到的内容;

grep选项:
  -v: 反向选取
  -o: 仅显示匹配到内容
  -i: 忽略字符大小写
  -E: 使用扩展正则表达式
  -A #: 匹配到的行向下多显示#行
  -B #:匹配到的行向下多显示#行
  -C #:匹配到的行向上向下多显示#行

扩展正则表达式:
        和基本正则表达式大同小异,一般在匹配时无需加转义符\,只有几个特定的需要加转义\
        *,?,+,{m},{m,n},^,$,\<,\>,\1,\2
        条件选择:a|b

练习:

1、显示/proc/meminfo文件中以大写或小写S开头的行;

2、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户

3、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
    并上述结果中其ID号最大的用户;

4,找出当前系统上其用户名和默认shell相同的用户

5,找出/etc/passwd文件中的一位数或两位数;

6,显示/boot/grub/grub.conf中以至少一个空白字符开头的行;

7,显示/etc/rc.d/rc.sysinit文件中,以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;

时间: 2024-12-23 00:43:44

linux学习之grep egrep 命令及正则表达式的相关文章

Linux学习之grep及正则表达式

1.grep:根据模式搜索文本,并将符合模式的文本行打印出来 使用基本正则表达式定义的模式来过滤文本的命令 grep 选项 模式(正则表达式) 参数 模式:由文本字符和正则表达式的元字符组合而成的匹配条件 -E:扩展正则表达式 -i:不区分大小写 -w:匹配整个单词 -x:匹配整行 -v:显示不匹配的行 --colour/--color:高亮显示匹配字符串 -A:打印匹配本身以及后面的几行 -B:打印匹配本身以及前面的几行 -C:打印匹配本机以后前后的几行 -o:只显示匹配到的字符串 -c:显示

Linux学习之用户管理命令与用户组管理命令(十五)

Linux学习之用户管理命令与用户组管理命令 目录 用户管理命令 用户添加命令useradd 修改用户密码passwd 修改用户信息usermod 修改用户密码状态chage 删除用户userdel 用户切换命令su 用户组管理命令 添加用户组 修改用户组 删除用户组 将用户添加到组或者从组中删除 用户管理命令 用户添加命令useradd 只能超级用户才能添加用户. useradd [选项] 用户名 选项: -u UID:手工指定用户的UID号 -d 家目录:手工指定用户的家目录 -c 用户说明

linux下的grep,egrep及正则表达式

一, linux上常用的文本搜索工具,grep家族和正则表达式及介绍   linux上常用的文本搜索工具: grep(egrep,fgrep):文本搜索工具:基于"pattern"对给定文本进行搜索操作: sed:Stream EDitor,流编辑器,行编辑工具:文本编辑工具: awk:GNU awk,文本格式化工具:文本报告生成器: 正则表达式:由一类特殊字符及文本字符所编写的模式,其有些字符不表示其字面意义,而是用于表示控制或通配的功能: 一般分为两类: 基本正则表达式:BRE 扩

【Linux相识相知】文本处理工具之grep\egrep\fgrep及正则表达式

常说Linux上有文本处理的三剑客,grep.sed和awk,本文就grep做出详细的描述,并引出正则表达式. grep NAME:打印模式匹配的行 SYNOPISIS: grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...] 常用选项: --color=auto:对匹配到的文本着色后进行高亮显示,默认已被别名alias grep='grep --color=auto' -i:忽略字符的大小

Linux学习日志--文件搜索命令

开头总结: 学习了Linux中的文件搜索命令find和locate,系统搜索命令whereis 和which ,字符串搜索命令grep,find和locate的区别和用法格式,什么是path环境变量以及其好处,whereis和which的用法,区别在于查询系统命令内容的不同,grep和find的区别,为什么要引入通配符? 什么情况下用通配符还是正则表达式? Locate文件搜索命令: 1)格式: Locate [文件名] 2)更新数据库 updatedb 好处: 相对于find命令来说,Loca

Linux学习之grep篇

一.接上篇用户及权限管理 Command:chmod / chown / chgrp / umask 1.chmod(修改文件权限) SYNOPSIS        chmod [OPTION]... MODE[,MODE]... FILE...        chmod [OPTION]... OCTAL-MODE FILE...        chmod [OPTION]... --reference=RFILE FILE... 分为三类: u:owner(属主) g:group(属组) o

grep,egrep相应的正则表达式用法详解。

grep(global search regular RE )是一种强大的文本搜索工具,它只能使用基本的正则表达式来搜索文本,并把匹配的行打印出来. grep是很常见也很常用的命令,它的主要功能是进行字符串数据的比较,然后符合用户需求的字符串打印出来,但是主意,grep在数据中查找一个字符串时,是以"整行"为单位进行数据筛选的. 例子:grep --color=auto "root" /etc/passwd egrep命令等同于grep -E,利用此命令可以使用扩展

我的学习记录--grep , egrep

概念: grep (Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. grep:传统的grep程序,支持基本正则表达式 egrep:扩展的grep程序,支持扩展正则表达式 正则表达式:简单来说就是,用一串自己定义的条件字符串,去匹配检索文档中符合条件的字符. grep基本格式: grep [OPTIONS] PATTERN [FILE...] 常用选项: -o:只显示被模式匹

Linux学习一天 一个命令(2)[cd命令]

Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的.所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧. 1. 命令格式: cd [目录名] 2. 命令功能: 切换当前目录至dirName 3. 常用范例 3.1 例一:进入系统根目录 命令: cd / 输出: [[email protected] ~]# cd / 说明:进入系统根目录,上面命令执行完后拿ls命令看一下,当前目录已经到系统根目录了 例2:使用