shell编程之正则表达式部分
Part 1:正则表达式简介
正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找以及替换操作。
1.1 正则表达式与通配符
这里归纳一下:
正则表达式:
- 主要用来匹配文件内容,如greo
- 包含匹配
通配符:
- 主要用来匹配文件名,如find
- 完全匹配
1.2 基础正则表达式
推荐看《慕课网》里的原始视频教程:shell编程基础,里面的Tony老师讲的很好。
Part 2:字符截取命令
2.1 cut [选项] 文件名
选项:
- -f 列号:提取相应的列号,列号以1开始,注意前面加上
- -d 分割符:指定一行中的分割符,默认是使用Tab键产生的制表符
2.1.1 实例
2.2 Extra:printf ‘输出类型输出格式’ 输出内容
printf 命令不算是字符提取命令中的一种,这里穿插讲他是为了后面的awk命令服务。
2.2.2 实例
本来最后想尝试一下输出小数的,可是莫名报错,好吧。
2.3 awk’条件1{动作1}条件2{动作2}···’ 文件名
条件可以为空,表示所有文件内容都经过后面对应{动作}处理。
2.3.1 开始条件:BEGIN
使用该条件后,会在最开始就优先处理BEGIN{动作},中的动作。
2.3.2 最后条件:END
与BEGIN对应,会在最后执行END{动作},中的动作。
2.3.4 确定分割符动作:FS
例子:
awk 'BEGIN{FS=:}'
2.3.5 实例演示
2.4 sed [选项] ‘[动作]’ 文件名
sed是一种几乎包括所有UNIX平台,包括Linux的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令。
2.4.1 选项
2.4.2 动作
这里附带一个字符替换动作的格式:
sed ‘s/旧字符/新字符/g’ 文件名