awk 实现《SED单行脚本快速参考》
需积分: 9 36 浏览量
更新于2024-08-01
收藏 27KB DOCX 举报
"《SED 单行脚本快速参考》"
在Linux系统中,`sed`和`awk`是两种非常强大的流编辑器,它们在处理文本数据时各有优势。`sed`通常以其简洁的命令行语法而闻名,尽管这可能导致脚本可读性较低。相比之下,`awk`提供了更接近编程语言的结构,如`if`和`while`语句,使得逻辑处理更为直观。
1. **在每一行后面增加一空行**
- `sed G`
- `awk '{printf("%s\n\n",$0)}'`
2. **删除所有空行并添加一空行**
- `sed '/^$/d;G'`
- `awk '!/^$/{printf("%s\n\n",$0)}'`
3. **在每一行后面增加两行空行**
- `sed 'G;G'`
- `awk '{printf("%s\n\n\n",$0)}'`
4. **删除所有偶数行(即删除所有空行)**
- `sed 'n;d'`
- `awk '{f=!f;if(f)print $0}'`
5. **在匹配"regex"的行前插入空行**
- `sed '/regex/{x;p;x;}'`
- `awk '{if(/regex/)printf("\n%s\n",$0);else print $0}'`
6. **在匹配"regex"的行后插入空行**
- `sed '/regex/G'`
- `awk '{if(/regex/)printf("%s\n\n",$0);else print $0}'`
7. **在匹配"regex"的行前后各插入空行**
- `sed '/regex/{x;p;x;G;}'`
- `awk '{if(/regex/)printf("\n%s\n\n",$0);else print $0}'`
8. **为文件中的每一行编号(左对齐)**
- `sed =filename | sed 'N;s/\n/\t/'`
- `awk '{i++;printf("%d\t%s\n",i,$0)}'`
9. **对文件中的所有行编号(左对齐,文字右端对齐)**
- `sed =filename | sed 'N;s/^//;s/*\(.\{6,\}\)\n/\1/'`
- `awk '{i++;printf("%6d%s\n",i,$0)}'`
10. **仅显示非空行的行号**
- `sed '/./='`
这些示例展示了`sed`和`awk`在文本处理中的基本操作,如行操作、模式匹配和行编号。在实际应用中,根据具体需求,开发者可以选择更适合的工具或结合两者以实现复杂的数据处理任务。虽然`sed`的命令可能较短,但其语法可能更难以理解,而`awk`则提供了更丰富的控制结构,对于需要编写复杂逻辑的脚本,`awk`可能更为合适。最终选择哪种工具,取决于个人喜好和任务的复杂程度。
147 浏览量
140 浏览量
274 浏览量
2024-09-12 上传
2024-10-24 上传
2024-12-31 上传
2025-01-01 上传
103 浏览量
133 浏览量

wwwf3weq4afd
- 粉丝: 10
最新资源
- J2EE培训:企业级软件开发深度解析
- 探索Ruby编程语言:资源、进阶与社区指南
- Symbian:移动办公的微核操作系统研究与环境配置详解
- 互联网搜索引擎:原理、技术与系统详解
- JSP+Tomcat基础配置与环境搭建详解
- CoreJava基础教程:从入门到精通
- 构建机票预定系统:需求与服务器功能分析
- Linux内核0.11完全解析
- 掌握数据流图绘制关键:基本符号与应用实例
- Struts1.2深度解析:核心标签库与架构详解
- Struts框架详解:构建高效Web应用
- UML使用案例驱动的对象建模:理论与实践
- Matlab实现的差分2DPSK调制解调系统仿真设计
- 2008版《Illustrated C#》:精通.NET框架与C#编程全览
- JBPM工作流开发实战指南
- C++Builder6实战指南:从基础到高级技术探索