sed与awk单行脚本实例:文本处理与行间距操作

5星 · 超过95%的资源 需积分: 50 8 下载量 10 浏览量 更新于2024-09-13 收藏 178KB PDF 举报
本文档提供了一个关于sed和awk单行脚本的快速参考指南,这两个强大的文本处理工具在Unix/Linux系统中被广泛用于行操作、数据转换和文本格式化。以下是一些关键知识点: 1. **增加或删除空行**: - `sed G`:在每一行后面追加一个空行,使得每行之间有一个空行间隔。 - `awk '{printf("%s\n\n",$0)}'`:同样实现每一行后添加两行空行,使得格式清晰。 - `/^$/d;G`:删除所有空行并在每行后添加一个空行。 - `awk'{f=!f;if(f)print$0}'`:保留非空行,删除空行。 2. **行的插入和替换**: - `sed'/regex/{x;p;x;G;}'`:在匹配模式“regex”的行前后各插入一个空行。 - `awk'{if(/regex/)printf("%s\n\n",$0);else print$0}'`:根据匹配模式插入空行,模式之外的行保持不变。 3. **行号和格式化**: - `sed=filename|sed 'N;s/\n/\t/'`:为文件中的每一行编号,采用制表符对齐。 - `awk'{i++;printf("%6d%s\n",i,$0)}'`:右对齐显示行号和内容,最多6位宽。 - `sed'/./='filename|sed'/./N;s/\n//'`:仅显示非空行的行号。 4. **文本转换**: - `sed 's/.$//'`:在Unix环境中,转换DOS格式的换行符(CR/LF)为Unix格式(LF)。 5. **计数与统计**: - `sed-n'$='`:计算文件中的行数,类似于`wc -l`命令。 - `awk'{i++}END{print i}'`:通过awk计数非空行,最后输出总行数。 这些脚本展示了sed和awk的基本用法,它们可以高效地处理大量文本数据,满足不同场景下的格式调整和统计需求。熟练掌握这些技巧对于处理文本文件和自动化任务非常有帮助。