首页 > 其他分享 >正则表达式

正则表达式

时间:2024-08-17 19:50:22浏览次数:11  
标签:web grep 正则表达式 com web01 txt root

一、正则特殊符号:

1、;作用:命令的分隔符,前面的命令失败或者正确都会继续执行

案例1:命令的拼接
[root@web01 ~]# ll;mkdir web;cd web;pwd
total 4
-rw-r--r-- 1 root root 1000 Nov 23 22:57 test.zip
/root/web

案例2:命令执行错误不影响后续命令执行
[root@web01 ~]# lll;mkdir web;cd web;pwd
-bash: lll: command not found
/root/web

2、&&作用:命令分隔符,前面的命令必须成功才会执行&&后面的命令

案例1:执行正确的命令
[root@web01 ~]# mkdir web && cd /tmp
[root@web01 tmp]# pwd
/tmp

案例2:命令执行错误
[root@web01 ~]# ping -w1 -c1 www.baiduuuu.com && cd /tmp
ping: www.baiduuuu.com: Name or service not known
[root@web01 ~]# ping -w1 -c1 www.baiduuuu.com
ping: www.baiduuuu.com: Name or service not known
[root@web01 ~]# echo $?
2

3、||作用:前面的必须执行失败,才执行||后面的命令

案例1:执行成功的命令
[root@web01 ~]# mkdir web || cd web
[root@web01 ~]# ll
total 4
drwxr-xr-x 2 root root    6 Nov 26 20:21 web

案例2:执行错误的命令
[root@web01 ~]# cd web || mkdir web
-bash: cd: web: No such file or directory
[root@web01 ~]# ll
total 4
drwxr-xr-x 2 root root    6 Nov 26 20:26 web
[root@wen01 ~]# cd oldboy || mkdir -p web || ls web
[root@web01 web]# ls							不执行
1.txt

案例3:一起使用注意,判断紧挨着前面的命令执行结果
[root@web01 ~]# ping -w1 -c1 www.baiduaaaaa.com &> /dev/null && echo ok || echo error
error

二、正则表达式

1、概念:

  1. 正则表达式是为了处理大量文件/文本/字符串而定义的一套规律和方法
  2. 通过定义的这些特殊符号的辅助,系统管理员可以快速过滤,替换或输出需要的字符串
  3. Linux正则表达式一般以行为单位处理

2、常用符号:

2.1、 ^

^word :找以word开头的行		# ^以……开头的行
[root@web01 ~]# grep '^o' web.txt
our site is http:www.lizhenya.com

# -v:表示除去“#”的其他打印出来
[root@wen01 ~]# grep -v '#' /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted

# -i:表示不区分大小写
[root@web01 ~]# grep -i '^i' web.txt
I am lizhenya teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!

2.2、$

# 环境准备
[root@web01 ~]# cat web.txt
I am lizhenya teacher!
I teach linux.
test

I like badminton ball ,billiard ball and chinese chess!
my blog is http: blog.51cto.com 
our site is http:www.lizhenya.com 
my qq num is 593528156

aaaa,
not 572891888887.
^^^^^^^^66$$$$$$$^^^$$
lizhenyalizhenyalizhenya


m$:查找以文件内以m结尾的行;注意:必须以……结尾,包括空格
[root@web01 ~]# grep 't$' web.txt 		# 以t结尾
test
[root@web01 ~]# grep '^$' web.txt 		# 以空格开头空格结尾

[root@web01 ~]# grep 'm$' web.txt 		# 没有显示答案是因为后面有个空格
[root@web01 ~]# grep 'm $' wen.txt
my blog is http: blog.51cto.com
our site is http:www.lizhenya.com

[root@web01 ~]# grep -v '^#' /etc/selinux/config | grep -v '^$'
SELINUX=disabled
SELINUXTYPE=targeted

2.3、使用cat -A在文件的末尾显示\(;-A在文件末尾显示\)把tab键显示为^|

[root@web01 ~]# cat -A wen.txt
I am lizhenya teacher!$
I teach linux.$
test$
$
I like badminton ball ,billiard ball and chinese chess!$
my blog is http: blog.51cto.com $
our site is http:www.lizhenya.com $
my qq num is 593528156$
$
aaaa,$
not 572891888887.$
^^^^^^^^66$$$$$$$^^^$$$
lizhenyalizhenyalizhenya$

2.4、如果需要查$,则使用\还原本意

[root@web01 ~]# grep '\$' web.txt
^^^^^^^^66$$$$$$$^^^$$

标签:web,grep,正则表达式,com,web01,txt,root
From: https://www.cnblogs.com/9Dusk/p/18364877

相关文章

  • 在Delphi中使用正则表达式校验身份证号
    以下内容转自:https://my.oschina.net/ousinka/blog/3048132如何定义身份证号的正则表达式呢?1、省份编码[1-9]\d{5}2、年份(18|19|20)?\d{2}3、月份为1,3,5,7,8,10,12,天数范围为01-31,匹配MMDD的正则表达式为:(0[13578]|1[02])(0[1-9]|[12][0-9]|3[01])4、月份为4,6,9......
  • 正则表达式高级
    正则表达式的三种模式【贪婪、勉强、侵占】假定要分析的字符串是xfooxxxxxxfoo模式.*foo(贪婪模式):模式分为子模式p1(.*)和子模式p2(foo)两个部分.其中p1中的量词匹配方式使用默认方式(贪婪型)。匹配开始时,吃入所有字符xfooxxxxxx去匹配子模式p1。匹配成功,但这样以来就没......
  • 提高效率:Linux 正则表达式实用技巧
    目录前言匹配符号用法讲解“.”用法[]用法“*”用法“.*”用法“\?”用法“\+”用法“\\{n\\}”用法\\{m,n\\}用法锚点符号“^”用法“$”用法“^$”用法或|用法前言在Linux系统中,正则表达式(RegularExpressions,简称regex)是一个强大的工具,广泛应......
  • Linux Shell编程--正则表达式、grep、sed、awk
    前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除!一、正则表达式1、正则表达式定义1.1、简介正则表达式是一种强大的文本模式匹配工具,用于搜索、替换或分割字符串。在Shell脚本中,正则表达式通常与grep、sed和awk等工具一起使用。1.2、层次分类基......
  • 【Regex】正则表达式详解:从基础到高级应用(保姆篇)
    文章目录正则表达式详解:从基础到高级应用一、正则表达式基础1.什么是正则表达式?2.基本组成部分二、正则表达式的常用模式1.字符匹配2.量词3.位置符号4.分组和捕获三、正则表达式的高级应用1.断言(Assertions)2.贪婪与非贪婪匹配四、正则表达式在不同编程语言中......
  • sed 命令与正则表达式
    sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都会被打印到屏幕上。sed编辑器逐行处理文件(或输入),并将结果打印到屏幕上。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓......
  • Linux shell脚本案例:使用正则表达式匹配目录并定时删除日期早于当前系统日期的所有目
    实现每周三和每周日执行清理/NFS目录的任务,你可以使用shell脚本结合cron定时任务。下面是一个示例脚本,它会删除/NFS目录下所有名称形如XBK_FULL_YYYYMMDDHHMMSS和XBK_INCR_YYYYMMDDHHMMSS的目录,其中日期早于当前系统日期。步骤1:创建Shell脚本创建脚本......
  • 通配符和正则表达式区别
    通配符和正则表达式区别通配符是shell自带的用于匹配文件名的工具,多用在文件名上,比如查找find,ls,cp等等。正则表达式则需要特定命令的支持才可以使用,如:grep、sed和awk(号称Linux三剑客)、vi/vim、perl等,这些都是处理文本的工具。其次,shell对通配符与正则表达式的处理也有不同,“......
  • 正则表达式(分组、零宽断言)
     目录正则表达式分组捕获组编号捕获组(pattern)命名捕获组(?\<name>pattern)非捕获组(?:pattern)零宽断言先行断言零宽正向先行断言(?=pattern1)pettern2零宽负向先行断言(?!pattern1)pettern2后行断言零宽正向后行断言(?<=pattern1)petter......
  • 正则表达式
    正则表达式目录正则表达式字符通配符次数通配符字符类定位符分组和量词选择和逻辑运算符边界匹配符转义特殊字符预定义字符类字符通配符.:匹配任意单个字符(除了换行符)。次数通配符*:前一个字符的0次或多次。例如,a*可以匹配"cat"中的"c",也可以匹配"apple"中的"app"......