
Shell正则表达式实战:grep、sed、awk应用技巧笔记
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
简介:本书聚焦于Shell脚本中的正则表达式及其在grep、sed和awk工具上的实际运用,旨在提供一系列高效的文本处理技巧与示例。
### Shell正则表达式之grep、sed、awk实操笔记
#### 一、概述
本段落主要探讨了在Shell脚本编程中如何运用`grep`、`sed`与`awk`结合正则表达式来实现一些具体的需求。这些工具在文本处理方面极其强大,通过灵活运用它们,可以高效地完成文本搜索、替换和格式化等任务。
#### 二、grep实操笔记
`grep`是一种强大的文本搜索工具,它可以搜索固定字符串或符合正则表达式的字符串。下面详细介绍了一些`grep`命令的实际应用案例。
##### 1. 搜索特定字符串 the
- **命令**: `grep -n the regular_express.txt`
- **功能**: 在文件`regular_express.txt`中搜索包含the的所有行,并显示行号。
##### 2. 反向搜索特定字符串 the
- **命令**: `grep -vn the regular_express.txt`
- **功能**: 搜索不包含the的行并显示其行号。其中`-v`选项表示反向匹配。
##### 3. 忽略大小写搜索 the
- **命令**: `grep -in the regular_express.txt`
- **功能**: 不区分大小写地搜索字符串the。
##### 4. 利用括号[]来搜寻集合字符
- **命令**: `grep -n t[ae]st regular_express.txt`
- **功能**: 搜索含有`tast`或`test`模式的行。这里的`t[ae]st`表示要么是`tast`,要么是`test`.
- **扩展**: 若要搜索包含oo但不是goo的行,可以使用命令 `grep -n [^g]oo regular_express.txt`
- **进一步**: 若要搜索包含oo但其前一个字符不是小写字母的行,可以使用命令 `grep -n [^a-z]oo regular_express.txt`.
- **示例**: 使用命令`grep -n [a-zA-Z0-9] regular_express.txt` 搜索包含任何英文字母或数字的行。
- **高级用法**: 使用命令`grep -n [^[:lower:]]oo regular_express.txt`搜索包含oo但其前一个字符不是小写字母的行。这里 `[:lower:]`表示所有小写英文字母。
##### 5. 显示以 the 开头的字符串
- **命令**: `grep -n ^the regular_express.txt`
- **功能**: 搜索以the开头的行。
##### 6. 显示以小写字母开头的字符串
- **命令**: `grep -n ^[a-z] regular_express.txt`
- **功能**: 搜索以小写字母开头的行。
##### 7. 显示结尾为点 . 的那一行
- **命令**: `grep -n .$ regular_express.txt`
- **功能**: 搜索以.结束的行。
##### 8. 显示第5至9行数据
- **命令**: `cat -An regular_express.txt | head -n 10 | tail -n 6`
- **功能**: 先使用`cat -An`将文件加上行号输出,然后使用`head -n 10`获取前10行,再通过`tail -n 6`截取最后的六行数据以得到第5至9行。
##### 9. 显示空白行
- **命令**: `grep -n ^$ regular_express.txt`
- **功能**: 搜索空行。
#### 三、sed实操笔记
`sed`是一种流编辑器,它能够对输入的文本进行处理。下面介绍了一些基本的`sed`命令用法:
##### 示例1: 替换特定字符串
- **命令**: `sed s/pattern/replacement/g file`
- **功能**: 将文件中所有匹配pattern的内容替换为replacement.
##### 示例2: 删除包含特定模式的行
- **命令**: `sed /pattern/d file`
- **功能**: 从文件`file`中删除含有指定模式的所有行。
#### 四、awk实操笔记
`awk`是一种用于报表生成的脚本语言,非常适合处理结构化的数据。下面是一些使用案例:
##### 示例1: 计算字段总和
- **命令**: `awk {sum += $1} END {print sum} file`
- **功能**: 计算文件第一列的所有值之和。
##### 示例2: 提取特定列内容
- **命令**: `awk {print $3} file`
- **功能**: 打印出文件中第三列的内容。
#### 五、总结
通过以上实例可以看出,`
全部评论 (0)


