首页 > 系统相关 >Shell | 正则表达式

Shell | 正则表达式

时间:2023-07-13 12:23:19浏览次数:42  
标签:Shell grep 正则表达式 cat etc passwd 匹配 特殊字符

正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。在 Linux 中,grepsedawk 等文本处理工具都支持通过正则表达式进行模式匹配。

常规匹配

一串不包含特殊字符的正则表达式匹配它自己,例如:

$ cat /etc/passwd | grep hhh

就会匹配所有包含 hhh 的行。

常用特殊字符

1、特殊字符:^

^ 匹配一行的开头,例如:

$ cat /etc/passwd | grep ^a

会匹配出所有以 a 开头的行

2、特殊字符:$

$ 匹配一行的结束,例如

$ cat /etc/passwd | grep t$

会匹配出所有以 t 结尾的行

思考:^$ 匹配什么?

3、特殊字符:.

. 匹配一个任意的字符,例如

$ cat /etc/passwd | grep r..t

会匹配包含 rabt,rbbt,rxdt,root 等的所有行

4、特殊字符:*

* 不单独使用,他和上一个字符连用,表示匹配上一个字符 0 次或多次,例如

$ cat /etc/passwd | grep ro*t

会匹配 rt, rot, root, rooot, roooot 等所有行

思考:. 匹配什么?*

5、字符区间(中括号):[ ]

[ ] 表示匹配某个范围内的一个字符,例如

[6,8]------匹配 6 或者 8

[0-9]------匹配一个 0-9 的数字

[0-9]*------匹配任意长度的数字字符串

[a-z]------匹配一个 a-z 之间的字符

[a-z]* ------匹配任意长度的字母字符串

[a-c, e-f]-匹配 a-c 或者 e-f 之间的任意字符

$ cat /etc/passwd | grep r[a,b,c]*t

会匹配 rt,rat, rbt, rabt, rbact,rabccbaaacbt 等等所有行

6、特殊字符:\

\ 表示转义,并不会单独使用。由于所有特殊字符都有其特定匹配模式,当我们想匹配某一特殊字符本身时(例如,我想找出所有包含 '$' 的行),就会碰到困难。此时我们就要将转义字符和特殊字符连用,来表示特殊字符本身,例如

$ cat /etc/passwd | grep ‘a\$b’

就会匹配所有包含 a$b 的行。注意需要使用单引号将表达式引起来。

标签:Shell,grep,正则表达式,cat,etc,passwd,匹配,特殊字符
From: https://www.cnblogs.com/zhangxuegold/p/17550130.html

相关文章

  • 【计算机教育缺失的一课】01 课程概览与shell
    一、单个程序(1)shell当可视化界面无法实现你想要的功能时,shell是你和计算机交互的主要方式之一。大多数平台也都提供一些形式的shell。在windows上一般是powershell,但也有其他shell可用。有不同类型的shell最常见的是Bash(BourneAgainSHell)(2)terminal......
  • Shell | 函数语法
    系统函数1、basename基本语法:basename[string/pathname][suffix](功能描述:basename命令会删掉所有的前缀包括最后一个(‘/’)字符,然后将字符串显示出来。basename可以理解为取路径里的文件名称选项:suffix为后缀,如果suffix被指定了,basename会将pathname或string......
  • 如何实现正则表达式 ios兼容的具体操作步骤
    正则表达式iOS兼容性正则表达式是用于匹配和操作字符串的强大工具。在iOS开发中,我们经常需要使用正则表达式来验证、解析和转换字符串。然而,不同版本的iOS系统对正则表达式的支持有所不同。本文将介绍如何在iOS中使用正则表达式,并解释其兼容性问题。正则表达式基础正则表达式是......
  • Shell | 循环语句
    for循环基本语法1:for((初始值;循环控制条件;变量变化))do 程序done例子:从1加到100$touchfor1.sh$vimfor1.sh#!/bin/bashsum=0for((i=0;i<=100;i++))dosum=$[$sum+$i]doneecho$sum$chmod777for1.sh$./for1.sh5050基本语法2:for变量in值......
  • Shell | 判断语句
    if判断基本语法:(1)单分支if[条件判断式];then 程序fi或者if[条件判断式]then 程序fi(2)多分支if[条件判断式]then 程序elif[条件判断式]then 程序else 程序fi注意事项:​ ①[条件判断式],中括号和条件判断式之间必须有空格​ ②if后要有空格......
  • 1.8 运用C编写ShellCode代码
    在笔者前几篇文章中,我们使用汇编语言并通过自定位的方法实现了一个简单的MessageBox弹窗功能,但由于汇编语言过于繁琐在编写效率上不仅要考验开发者的底层功底,还需要写出更多的指令集,这对于普通人来说是非常困难的,当然除了通过汇编来实现ShellCode的编写以外,使用C同样可以实现编写,......
  • ansible shell模块简单使用
    ansibleshell模块简单使用参数参数说明chdir运行命令前先CD到该目录cmd运行的命令creates存在某个文件就不运行命令executable更改执行命令的shell路径,需要是绝对路径free_formTheshellmoduletakesafreeformcommandtorun,asastring.The......
  • Shell 编程常用参考
    Shell特殊变量$0,$#,$*,$@,$?,$$和命令行参数Shell中的特殊变量参考如下表:变量含义$0当前脚本的文件名$n传递给脚本或函数的参数。n是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2$#传递给脚本或函数的参数个数$*传递给脚本或函数......
  • 题:10. 正则表达式匹配
    leetcode题:(https://leetcode.cn/problems/regular-expression-matching/)给你一个字符串s和一个字符规律p,请你来实现一个支持'.'和'*'的正则表达式匹配。'.'匹配任意单个字符'*'匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。示......
  • 玩转Python正则表达式:实用教程带你快速入门
    引言正则表达式是一种强大的文本匹配和处理工具,广泛应用于各种编程语言中。在Python中,我们可以使用内置的re模块来处理正则表达式。本文将带您从入门到精通,逐步介绍Python中的正则表达式用法,并提供实例演示。1.正则表达式基础1.1什么是正则表达式正则表达式是一种用于描述和......