正则表达式
来源:互联网 发布:分区表丢失数据恢复 编辑:程序博客网 时间:2024/06/06 09:57
概述:
《跟阿铭学linux》,几乎任何软件都会涉及到正则表达式,它一种匹配模式,下面linux相关的正则表达式工具grep,sed,awk
1、grep/egrep
语法:grep [-cinvABC] 'word' filename
-c : 打印符号要求的行数
-i :忽略大小写
-n :在输出符号要求的行的同时连同行号一起输出
-v : 打印不符合要求的行
-A : 后跟一个数字(例如-A2则表示打印符号要求的行以及下面两行)
-B :后跟一个数字 (例如-B2表示打印符合要求的行以及上面两行)
-C : 后面一个数字 (例如-C2则表示打印符合要求的行以及上下各两行)
grep -A2 'halt' /etc/passwd (搜索‘halt’字符,然后打印该字符对应的行以及下面两行)
grep -B2 'halt' /etc/passwd (搜索‘halt’字符,然后打印该字符对应的行以及上面两行)
grep -C2 'halt' /etc/passwd (搜索‘halt’字符,然后打印该字符对应的行以及上下各两行)
1、过滤出带有某个关键词的行,并输出行号
2、过滤不带有某个关键词的行,并输出行号
3、过滤出所有包含数字的行
grep '[0-9]' /etc/passwd
4、过滤出所有不包含数字的行
grep -v '[0-9]' /etc/passwd (-v表示反选)
5、把所有以‘#’开头的行去除
6、去掉所有空行和以‘#’ 开头的行
grep -v '^#' /etc/crontab | grep -v '^$'
这正则表达式中,‘^’表示行的开始, ‘$’表示行的结尾, 那么空行则可以表示'^$'表示
不以英文字符开头
grep '^[^a-zA-Z]' 文件名 (其中【^字符】表示不以括号的字符开头)
7、过滤任意一个字符与重复字符
8、指定要过滤字符出现的次数
{n1, n2} n1<n2,表示重复n1到n2次前面的字符,n2还可以为空,则表示大于等于n1次
egrep用法
1、筛选一个或一个以上前面的字符
2、筛选零个或一个前面的字符
3、筛选字符串1或者字符串2
4、egrep中()的应用
用()表示一个整体,例如(oo)+ 就表示一个‘oo’或者多个‘oo’
2、sed工具的使用
查询替换功能
1、打印某行
打印出来可以使用sed -n '1,$'p 文件名
也可以指定一个区间:
2、打印包含某个字符串的行
[root@iz8vb7cc5e91muwr6fxp3jz test]# sed -n '/^o/'p /etc/passwdoperator:x:11:0:operator:/root:/sbin/nologin[root@iz8vb7cc5e91muwr6fxp3jz test]# sed -n '/$in/'p /etc/passwd[root@iz8vb7cc5e91muwr6fxp3jz test]# sed -n '/in$/'p /etc/passwdbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinmail:x:8:12:mail:/var/spool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologin
总结:
- 1、格式为:/搜素内容/
- 2、其它正则表达式同grep
3、-e可以实现多个行为(也就是可以查找多个条件采用|)
4、删除某行或者多行
建立一个test.txt文件内容为
1111111222222233333334444444
sed '1,3d' test.txt 表示删除1到3行数据,然后将结果输入到控制台
5、替换字符或字符串
sed 's/[0-9]//g' test.txt (将数字替换为空)
6、调换两个字符串的位置。
其实就是把一行作为一个整体,分割多份,然后互换位置
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 电梯调度的C语言实现(vc可正常运行)
- Unity16--背景滚动的设置、第一人称视角
- 欧几里得算法模板
- 数据结构图之java实现
- NOIP2009Hankson的趣味题
- 正则表达式
- Elasticsearch 插入索引文档 和特殊的字段类型
- [java]插入排序及折半插入排序
- aidl原理解析
- Python 中文编码
- Java -2
- servlet(1)
- 联系人号码显示匹配规则
- 初识指针(初学者)