正则表达式和sed的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式和sed的使用相关的知识,希望对你有一定的参考价值。

1  字符串的组合表达有重复和逻辑两种方法

2  重复

*  零次或多次匹配前面的字符或子表达式

+  一次或多次匹配前面的字符或子表达式

? 零次或一次匹配前面的字符或子表达式

3  用法格式:grep  ’字符串如se*’  表名或文档名

4  注意1加号和问号前面一定要加斜线如’se\+’’se\?’

5  括号和大括号加入到正则表达式中一定要加斜线如’\(se\)’*’\{se\}’

6  重复特定次数:[n,m]     n重复最小次数  m重复最大次数

7  任意字符串的表式:

7.1  .*  grep  ’m.*c’  passwd  表示找出passwd中的所有以m开头c结尾的内容,包括单词和句子不论多长

7.2  而’m..c’的意思是找出所有以m开头中间只有两个单词c结尾的内容

’\bm[a-z]*c\b’’m..c’的意思一样

8  逻辑或的表达式:|   注意逻辑或的前面一定要加斜线                  ’bin/\false\|true\)’   意思是显示所有bintrue的内容

9  案例

9.1  匹配4-10位的QQ号

grep  ‘^[0-9]\{4,10\}$‘  文件名

9.2  匹配15位或18位的身份证号(支持带x)

grep  ‘^([1-9]\[0-9]\{13\}\|[0-9]\{16\}\)[0-9xX]$‘  文件名

9.3  匹配密码,由数字、26个字母和下划线组成

grep  ‘\W\+$‘  文件名

10  使用sed可以:

10.1  自动处理文件

10.2  分析日志文件

10.3  修改配置文件

11  Sed的行处理:

11.1  Sed一次处理一行内容

11.2  Sed不改变文件内容,除非重定向

12  Sed的流处理编辑器:文本或管道输入 读入一行到模式空间(模式空间即为临时缓冲区)  sed命令处理  最后输出到屏幕  重复读入一行到模式空间 sed命令处理

13  Sed的文本处理:正则选定文本 sed进行处理

14  使用sed格式:

14.1  命令行格式:sed 参数 命令输入的文件  (参数有-e-n-e一般用于调用两个命令,-n一般用于匹配p的命令意思是打印相关的行)   (命令由行定位既正则+sed命令即操作)

14.2  脚本格式:sed  -f参数 脚本文件   输入的文件

15  查看打印的行号:nl  文件  |  sed -n  要打印的行

以上是关于正则表达式和sed的使用的主要内容,如果未能解决你的问题,请参考以下文章

使用正则表达式和 sed 时跳过前 n 行?

在 grep 和 sed 中正确使用正则表达式开关

expect正则表达式和sed的使用

使用 sed 和正则表达式处理多行日志文件

使用 sed 和正则表达式从字符串中提取数字

正则表达式和sed的使用