awk 实现《SED单行脚本快速参考》
需积分: 9 140 浏览量
更新于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 上传
2013-10-11 上传
2021-01-11 上传
点击了解资源详情
点击了解资源详情
2007-08-16 上传
2012-11-17 上传
2012-04-01 上传
wwwf3weq4afd
- 粉丝: 10
- 资源: 4
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器