Linux下的SED脚本实用指南

需积分: 9 2 下载量 87 浏览量 更新于2024-09-08 收藏 248KB PDF 举报
"Linux下的SED脚本参考,包括各种实用的一行脚本示例,用于文本处理和编辑。" 在Linux环境中,SED(Stream Editor)是一个强大的文本处理工具,常用于处理流式数据,如标准输入或文件。这篇文档提供了一系列的一行SED脚本,涵盖了从简单到复杂的多种操作,帮助用户快速理解和应用SED命令。 ### 增加或删除空行 - `sed G`:在每行末尾添加一个空行,确保每行后都有且只有一个空行。 - `sed '/^$/d;G'`:删除所有空白行,然后在每一行后添加一个空行,确保每行非空白行后有一个空行。 - `sed 'G;G'`:先添加一个空行,然后删除所有偶数行(即原为空白行的位置),使每行非空白行后有一个空行。 - `sed 'n;d'`:在匹配特定模式的行前插入一个空行。 - `sed '/regex/{x;p;x;}'`:在匹配正则表达式“regex”的行后插入一个空行。 - `sed '/regex/G'`:在匹配“regex”行的前后各插入一个空行。 - `sed '/regex/{x;p;x;G;}'`:在匹配“regex”行的前后各插入一个空行,并保持原有的空行。 ### 行编号 - `sed 'N;s/\n/ /'`:为文件中的每一行进行编号,使用空格分隔,适用于行数不多的情况。 - `sed -e ':a' -e '$!N;s/\n/ /;ta' -e 'P;D'`:更通用的行编号方法,适合长文件,每行左侧对齐。 ### 替换与查找 - `sed 's/pattern/replacement/'`:替换所有出现的“pattern”为“replacement”。 - `sed 's/pattern/replacement/g'`:全局替换,替换文件中所有匹配的“pattern”。 - `sed 's/pattern//g'`:删除所有匹配的“pattern”。 - `sed '/pattern/d'`:删除所有匹配“pattern”的行。 ### 插入文本 - `sed '/regex/i\insertion_text'`:在匹配“regex”的行前插入“insertion_text”。 - `sed '/regex/a\append_text'`:在匹配“regex”的行后追加“append_text”。 ### 查找与过滤 - `sed -n '/pattern/p'`:仅打印匹配“pattern”的行。 - `sed -n '/^pattern$/p'`:仅打印完全匹配“pattern”的行。 ### 删除空白字符 - `sed 's/^\s*//'`:删除每行开头的空白字符。 - `sed 's/\s*$//'`:删除每行结尾的空白字符。 - `sed 's/[[:space:]]\+/\ /g'`:将连续的空白字符替换为单个空格。 ### 其他操作 - `sed 's/pattern/replacement/3'`:仅替换第三个匹配的“pattern”。 - `sed 's/pattern/replacement/4g'`:从第四次匹配开始,全局替换“pattern”。 这些例子只是SED强大功能的冰山一角,通过组合和调整这些脚本,可以解决复杂的文本处理问题。学习并熟练运用SED,能极大地提升你在文本处理和自动化任务中的效率。