awk与sed命令实用技巧详解
需积分: 50 76 浏览量
更新于2024-09-17
收藏 178KB PDF 举报
"这篇文档详细介绍了awk和sek命令的使用,包括如何在文本行后添加空行、删除或增加特定模式后的空行、为文件行编号以及进行文本转换和替代等操作。awk和sed是Linux/Unix环境中常用的文本处理工具,它们能够方便地对文本文件进行模式匹配和数据处理。"
在文本处理中,awk和sed是两个非常强大的工具。awk主要用于处理结构化数据,通过模式匹配和动作来处理文本文件。sek(通常应该是sed,可能是输入错误)则是流编辑器,它可以逐行读取输入,对每一行执行指定的命令。
1. **文本间隔**:
- `sed G` 在每一行后面添加一个空行。
- `awk '{printf("%s\n\n",$0)}'` 同样的效果,使用awk实现。
- `sed '/^$/d;G'` 删除所有空行并确保每行后有一个空行。
- `awk '!/^$/{printf("%s\n\n",$0)}'` 类似功能,不过仅在非空行后添加空行。
- `sed 'G;G'` 在每一行后面增加两行空行。
- `awk '{f=!f;if(f)print $0}'` 删除所有偶数行,保留奇数行。
2. **插入空行**:
- `sed '/regex/{x;p;x;G;}'` 在匹配正则表达式"regex"的行前后各插入一个空行。
- `awk '{if(/regex/)printf("\n%s\n",$0);else print $0}'` 在匹配行后插入一个空行。
- `sed '/regex/{x;p;x;}'` 在匹配行前插入一个空行。
3. **编号**:
- `sed 'N;s/\n/\t/'` 为文件中的每一行进行编号,使用制表符对齐。
- `awk '{i++;printf("%d\t%s\n",i,$0)}'` 同样的编号功能,使用awk实现,简单左对齐。
- `sed 'N;s/^//;s/*\(.\{6,\}\)\n/\1/'` 为文件中的所有行编号,右端对齐,至少6位宽度。
- `awk '{i++;if(!/^$/)printf("%d%s\n",i,$0);else print}'` 只显示非空行的编号。
4. **计算行数**:
- `sed -n '$='` 计算文件的行数,不打印其他内容。
- `awk '{i++}END{print i}'` 通过awk计算行数,最后打印总行数。
5. **文本转换和替代**:
- 转换DOS新行符(CR/LF)为Unix格式:`sed 's/.$/\r/'`,这会把Unix文件中的每个行尾的LF(\n)替换为DOS的CR/LF(\r\n)。
- 其他转换和替代操作可以使用sed的`s`命令进行,例如替换特定字符串,或根据正则表达式进行替换。
这些示例展示了awk和sed的强大功能,它们在日常文本处理任务中非常实用,尤其适合自动化脚本和数据处理场景。通过熟练掌握这两个工具,你可以高效地处理各种文本数据。
2010-06-19 上传
2014-09-14 上传
2009-02-06 上传
2021-01-20 上传
2021-10-02 上传
2012-01-05 上传
2021-01-19 上传
点击了解资源详情
点击了解资源详情
ylshf18
- 粉丝: 0
- 资源: 6
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜