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

Bash-正则表达式

时间:2023-09-24 14:57:08浏览次数:38  
标签:字符 grep 正则表达式 xxx 匹配 txt Bash

一.正则表达式与通配符

通配符:用来匹配符合条件的文件名完全匹配),ls、find、cp这些命令不支持正则表达式,所以只能用通配符

正则表达式:用来匹配符合条件的字符串包含匹配),grep、awk、sed等命令支持正则表达式

常用通配符:*(任意字符重复任意多次)、?、[]

二.基础正则表达式

* (匹配前一个字符0或任意多次)例子

  • grep "a*" xxx.txt  #匹配xxx文件中所有内容,包括空白行(没有任何意义)
  • grep "aa*" xxx.txt  #匹配xxx文件中至少包含一个a的行
  • grep "aaa*" xxx.txt  #匹配xxx文件中至少包含有两个连续a的行
  • grep "aaaaa" xxx.txt  #匹配xxx文件中至少包含有4个连续a的行

.(匹配除了换行符外任意一个字符)例子

  • grep "s..d" xxx.txt  #"s..d"会匹配在s和d这两个字母之间一定有两个字符的单词
  • grep "s.*d" xxx.txt  #匹配在s和d字母之间有任意字符
  • grep ".*" xxx.txt  #匹配所有内容

^(匹配行首)$(匹配行尾)例子

  • grep "^M" xxx.txt  #匹配以大写"M"开头的行
  • grep "n$" xxx.txt  #匹配以小写"n"结尾的行
  • grep -n "^$" xxx.txt  #匹配空白行

[ ](匹配括号中指定任意一个字符,只匹配一个字符)

  • grep "s[ao]id" xxx.txt  #匹配s和i字母中,要不是a就是o
  • grep "[0-9]" xxx.txt  #匹配任意一个数字
  • grep "^[a-z]" xxx.txt  #匹配用小写字母开头的行

[^](匹配除中括号的字符以外的任意一个字符)

  • grep "^[^a-z]" xxx.txt  #匹配不用小写字母开头的行
  • grep "^[^a-zA-Z]" xxx.txt  #匹配不用字母开头的行

\(转义符)

  • grep "\.$" xxx.txt  #匹配使用"."结尾的行

\{n\}(表示其前面的字符恰好出现n次)

  • grep "a\{3\}" xxx,txt  #匹配a字母连续出现三次的字符串
  • grep "[0-9]\{3\}" xxx.txt  #匹配包含连续的三个数字的字符串

\{n,m\}(匹配其前面的字符至少出现n次,最多出现m次)

  • grep "sa\{1,3\}i" xxx.txt  #匹配字母s和字母i之间,出现1-3个字符a

 

标签:字符,grep,正则表达式,xxx,匹配,txt,Bash
From: https://www.cnblogs.com/hhs1998/p/17725972.html

相关文章

  • Python 正则表达式
    正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python自1.5版本起增加了re模块,它提供Perl风格的正则表达式模式。re模块使Python语言拥有全部的正则表达式功能。compile函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象......
  • [leetcode] 10. 正则表达式匹配
    10.正则表达式匹配给你一个字符串s和一个字符规律p,请你来实现一个支持'.'和'*'的正则表达式匹配。'.'匹配任意单个字符'*'匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。示例1:输入:s="aa",p="a"输出:false解释:"a"无......
  • 常用正则表达式
    一、校验数字的表达式数字:[1]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$带1-2位小数的正数或负数:^(-)?\d+(.\d{1,2})$正数、负数、和小数:^(-|+)?\d......
  • 正则表达式
    正则表达式内容介绍1、字符组字符组是用于查找指定的字符,从左往右依次查找。通常来说,字符组中所有查找对象都是或的关系。符号说明[0123456789]匹配0到9任意一个数(全写)[0-9]匹配0到9任意一个数(缩写)[a-z]匹配26个小写英文字母[A-Z]匹配26个大写英文字......
  • 正则表达式知识点总结
    第一部分:正则表达式概念一个函数:re.findall(pattern,string)一些元字符:. * ? + [] () \ ^ $通过()来改变findall的行为 例1: 判断一个手机号码(长度、开头数字为1、只能是数字)importrea=12345678901defcheck_phone(phone):str_ph=str(pho......
  • bash: ./startup.sh: Permission denied
    启动时候发现权限不足解决办法:chmodu+x*.sh 为所有.sh脚本添加执行权限chmod u+x*.sh,表示对当前目录下的file.sh文件的所有者增加可执行权限。u代表所有者;x代表执行权限;......
  • Oracle正则表达式函数
    1、正则表达式中的元字符元字符意思例子\说明要匹配的字符是一个特殊字符、常量或者后者引用。(后引用重复上一次的匹配)\n匹配换行符\\匹配\\(匹配(\)匹配)^匹配字符串的开头位置如果A是字符串的第一个字符,^A匹配A$匹配字符串的末尾位置如果B是字符......
  • Bash命令 - .bashrc配置
    .bashrc配置命令别名#gitalias#============================================aliasgs='gitstatus'#============================================aliasgss='gitstash'aliasgsl='gitstashlist'aliasgsa='gitstashapply�......
  • linux中正则表达式仅保留绝对路径的目录
     001、方法1[root@pc1test2]#lsa.txt[root@pc1test2]#cata.txt##测试文件/home/test2/a.txt[root@pc1test2]#sed-r's/(\/.*\/).*/\1/'a.txt##仅保留路径/home/test2/ ......
  • 关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意
    为了解答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”这个问题,也为了能够便于大家对正则表达式有一个更为综合和深刻的认识,我将一些关键点和容易犯糊涂的地方再系统总结一下。 总结1:附件参数g的用法 表达式加上参数g之后,表明可以进行全局匹配,注意这里“可以”的含义。我们详......