shell匹配字符串,一行中出现多次(grep或sed)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell匹配字符串,一行中出现多次(grep或sed)相关的知识,希望对你有一定的参考价值。
例如:
abcadc
匹配a开头,c结尾的字符串:得到结果为abc 和adc,而不是abcadc
用 grep -oP 'a.*?c' 即可,如上图
追问不知道为什么我那样写不对,很伤心
本回答被提问者和网友采纳Shell 学习:正则表达式
正则符号包括基础正则符号和扩展正则符号
基础正则符号可在 sed和grep 命令中直接使用
扩展正则符号需要使用扩展参数
相关扩展参数
sed -r — 使用扩展正则
egrep / grep -E — 使用扩展正则
fgrep / grep -F — 取消解析基础正则
基础正则符号
符号 | 含义 |
---|---|
^ | 匹配以…开头字符 |
$ | 匹配以…结尾字符 |
^$ | 匹配空行 |
. | 匹配任意一个字符 |
* | 匹配前一个字符连续出现0次或多次 |
.* | 匹配任意字符,类似通配符* |
\\ | 不解析正则符号,将其转义成普通字符 |
[] | 匹配多个字符 |
[^a] | 匹配非a字符 |
部分测试:
扩展正则符号
符号 | 含义 |
---|---|
+ | 匹配前一个字符连续出现一次或多次 |
| | 匹配多个字符串 |
() | 匹配括号内整体/用于后项引前项 — sed 命令使用 |
| 指定匹配前一个字符连续出现次数 |
? | 匹配前一个字符连续出现0次或者1次 |
部分测试:
补充:
n,m 至少连续n次,最多连续m次
n 匹配只连续n次的信息
n, 至少连续n次,最多不限
,m 至少连续0次,最多m次
正则表达式与通配符
- 正则表达式:用来在文件中匹配符合条件的字符串,是包含匹配 — 支持命令:grep、awk、sed等
- 通配符:用来匹配符合条件的文件名,是完全匹配 — 支持命令 ls、find、cp等
以上是关于shell匹配字符串,一行中出现多次(grep或sed)的主要内容,如果未能解决你的问题,请参考以下文章