awk 实现《SED单行脚本快速参考》
需积分: 9 148 浏览量
更新于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`可能更为合适。最终选择哪种工具,取决于个人喜好和任务的复杂程度。
2012-07-19 上传
2017-06-24 上传
点击了解资源详情
2023-10-05 上传
2023-10-12 上传
2023-06-10 上传
2023-05-27 上传
2023-09-13 上传
2023-06-10 上传
wwwf3weq4afd
- 粉丝: 10
- 资源: 4
最新资源
- 构建Cadence PSpice仿真模型库教程
- VMware 10.0安装指南:步骤详解与网络、文件共享解决方案
- 中国互联网20周年必读:影响行业的100本经典书籍
- SQL Server 2000 Analysis Services的经典MDX查询示例
- VC6.0 MFC操作Excel教程:亲测Win7下的应用与保存技巧
- 使用Python NetworkX处理网络图
- 科技驱动:计算机控制技术的革新与应用
- MF-1型机器人硬件与robobasic编程详解
- ADC性能指标解析:超越位数、SNR和谐波
- 通用示波器改造为逻辑分析仪:0-1字符显示与电路设计
- C++实现TCP控制台客户端
- SOA架构下ESB在卷烟厂的信息整合与决策支持
- 三维人脸识别:技术进展与应用解析
- 单张人脸图像的眼镜边框自动去除方法
- C语言绘制图形:余弦曲线与正弦函数示例
- Matlab 文件操作入门:fopen、fclose、fprintf、fscanf 等函数使用详解