正则表达式概述:组成“操作”的基本语法,“操作”是文件处理必备的能力
文本处理工具 基础正则表达式 扩展正则表达式
vi编辑器 支持
grep 支持
egrep 支持 支持
sed 支持
awk 支持 支持
基础正则表达式
\ 转义字符,用于取消特殊符号的含义 \i、\n等
^ 匹配字符串的开始位置 ^world匹配以world开头的行
$ 匹配字符串的结束位置 world$匹配以world结束的行
. 匹配除\n(换行)之外的任一字符
- 匹配前面子表达式0次或多次
[list] 匹配list列表中的一个字符 [0-9]0-9任一数字,[aet]aet任一字符
[^list] 匹配不在list列表中的任一字符
{n} 匹配前面子表达式n次 [0-9]{2}匹配两位0-9的数字
{n,} 匹配至少n次前面子表达式 [0-9] {2,}至少两位0-9的数字
{n,m} 匹配前面表达式n到m次 [0-9] {2,5}两到五个0-9的数字
扩展正则表达式
- 匹配前面子表达式一次以上 Go+d,将匹配至少一个o
? 匹配前面子表达式0次或1次 go?n,将匹配go或god
() 将()中字符视为一个整体 (xyz)+,匹配xyz一次以上
| 以或的方式匹配字符串 Good|great,匹配good或great
grep:主要用于过滤
cat:查询全篇
一、AWK工具:主要用于提取文件
语法:awk [选项] ‘模式或条件 {编辑指令}’ 文件
模式可以为条件语句、复合语句和正则表达式等
FS
NF 当前处理行字段个数
NR 当前处理行行号
$0 当前处理行整行
$n 当前处理行的第n个字段(第n列)
二、 sed工具:主要用于提取行和替换文本
- sed是文本处理工具,依赖于正则表达式,可读取文本内容,根据指定条件对数据进行添加、删除、替换等操作,被广泛用于shell脚本,以完成自动化处理任务
- 基本语法
命令语法:sed [常用选项] [操作] 参数 文件
常用选项: -e指定要执行的命令,只有一个编辑命令时可省略
-n只输出处理后的行,读入时不显示
-i直接编辑文件,而不输出结果
操作: p 输出指定行
d 删除指定行
s 字串替换
r 读取指定文件
w 保存为文件
i 当前行前插入 - 输出指定的行:
sed -n ‘p’ /etc/passwd 输出所有内容
sed -n ‘6p’ /etc/passwd 输出第六行内容
sed -n ‘6,8p’ /etc/passwd 输出6到8行内容
sed -n ‘p;n’ /etc/passwd 输出奇数行
sed -n ‘n:p’ /etc/passwd 输出偶数行
sed -n ‘1,10{p;n}’ /etc/passwd 输出1~10行中偶数行
sed -n ‘1,10{n;p}’ /etc/passwd 输出1~10行中奇数行
sed -n ’10, n ;