Linux正则表达式 (三剑客grep,awk,sed)(通配符与正则表达式区别)

通配符与正则表达式

      通配符一般用于命令行bash环境,而linux正则表达式用于grep, sed, awk场景

      正则表达式用来在文件中搜索符合条件的字符串正则是包含匹配(模糊查询)。grep、awk、sed等命令可以支持正则表达式。

      通配符用来在系统中搜索符合条件的文件名通配符是完全匹配(精确查询)ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了。

比如说有aa和aabb

ls aa,只显示aa就是完全匹配,aa和aabb都显示了就是包含匹配

正则表达式

*.^ 的含义和通配符中完全不同

grep是一个文本查找命令,后面可以跟2个参数

grep [关键字] [目标文件]

ls -al /etc |grep 'ssh'

在ls的输出中查找带有ssh字样的行

注意 | 和grep经常放在一起使用,但是|才是管道,grep和管道没有关系,知识一个文本查找命令

“*”  代表前一个字符匹配0次或任意多次

①在文件中匹配所有内容,包括空白行

grep "a*" list.txt

②匹配至少包含有一个a的行

grep "aa*" test_rule.txt

③匹配最少包含两个连续a的字符串

grep "aaa*" test_rule.txt

④匹配最少包含四个连续a的字符串

grep "aaaaa*" test_rule.txt

“.”  匹配除了换行符外的任意一个字符

①匹配在s和d这两个字母之间一定有两个字符的单词

grep "s..d" test_rule.txt

②匹配在s和d字母之间有任意字符

grep "s.*d" test_rule.txt

③匹配所有内容

grep ".*" test_rule.txt


“^”匹配行首,“$”匹配行尾

①匹配以大写“M”开头的行

grep "^M" test_rule.txt

②匹配以小写“n”结尾的行

grep "n$" test_rule.txt

③匹配空白行

grep -n "^$" test_rule.txt


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

①匹配任意一个数字

grep "[0-9]" test_rule.txt

②匹配用小写字母开头的行

grep "^[a-z]" test_rule.txt

③匹配s和i中间的字母中,是a或o的情况。

grep "s[ao]id" test_rule.txt

"[^]' 匹配除括号的字符外任意一个字符

①匹配非小写字母开头的行

grep "^[^a-z]" test_rule.txt

②匹配非字母开头的行

grep "^[^a-zA-Z]" test_rule.txt

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

①匹配a字母连续出现三次的字符串

grep "a\{3}" test_rule.txt

②匹配包含连续的三个数字的字符串

grep "[0-9]\{3\}" test_rule.txt

"\{n,\}" 表示其前面的字符出现不少于n次

匹配最少用连续三个数字开头的行

grep "^[0-9]\{3,\}[a-z]" test_rule.txt


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

匹配在字母s和字母i之间有最少一个a,最多三个a

grep "sa\{1,3\}i" test_rule.txt

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值