主题:文本处理工具
一、grep
grep 全局搜索正则表达式
- 固定字符表示通用匹配
- whatis grep man grep 查看grep用法
- 正则表达式分为两种:传统+扩展正则表达式
- 对应的 有两个命令 grep(传统) 和 egrep(扩展)
- egrep = grep -E
grep 格式
grep 匹配条件 处理文件
实验
实验(一)
(1)cp /etc/passwd . 复制到当前
(2)vim passwd
删除前面一些,追加内容
root:root:test
test:test:root
ROOT:test
roothahahaahahahh
(3)过滤root关键字
grep root passwd 只显示过滤的关键字
(4)grep使用的贪婪模式,防止贪婪模式
grep -iE “<root>” passwd 过滤掉roothahahah
(5)以root开头(也就是每一行以root开头!)
grep ^root passwd
grep -i ^root passwd
(6)以root结尾
grep root$ passwd
(7)过滤忽略大小写
grep -i root passwd
(8)root之前、之后不能有字符(\表示之前或者之后不能有字符)
root字符之前不能有字符
grep -E “<root” passwd
root字符之后不能有字符
grep -E “root>” passwd
总结:不能有的是英文数字字符,不包括符号\等!
实验(二)
实验环境
cp /etc/passwd . 复制到当前
vim passwd
删除前面一些,中间添加westoslinux test
(1)显示过滤行以及上面几行和下面几行 grep -数字
grep -2 westoslinux passwd
(2)显示匹配的行所在行号 grep -n
grep -n westoslinux passwd
(3)显示过滤行以及下面几行(after)grep -A
grep -A2 westoslinux passwd
(4)显示过滤行以及上面几行grep -B
grep -B2 westoslinux passwd
(5)反向过滤grep -v
grep -v westoslinux passwd除了匹配行,其他都显示出来
(6)grep -n -2 westoslinux passwd
实验(三)
grep 字符数量匹配规则
^westos | 以westos开头 |
---|---|
westos$ | 以westos结尾 |
w…s | w开头s结尾,中间有4个字符(一个.代表一个字符) |
…s | s结尾前有5个任意字符 |
* | 字符出现0–任意次 |
? | 0–1次(0次或者1次) |
+ | 1–任意次 |
{n} | n次 |
{m,n} | m到n次 |
{0,n} | 0到n次 |
{,n} | 0到n次 |
{m,} | 最少m次 |
(jia){2} | jia字符串出现2次 |
实