每个 Linux 管理员都应该知道的十个 sed 单行命令(附真实示例)
本文将深入探讨十个适合初学者的sed单行命令,通过这些命令,你将能够直接从终端高效地搜索、替换和操作文本,大幅提升工作效率。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
在日常的Linux系统管理与运维工作中,文本处理是一项高频且重要的操作。本文将深入探讨十个适合初学者的sed单行命令,通过这些命令,你将能够直接从终端高效地搜索、替换和操作文本,大幅提升工作效率。

一、Linux用户应该知道的sed单行命令
sed,即“流编辑器”(Stream Editor),是Linux系统中极为强大的文本处理工具。它集搜索、查找、替换、删除和编辑等功能于一身,所有操作均可在终端完成,无需借助复杂的图形化文本编辑器。无论是清理杂乱的文件、调整系统配置,还是自动化繁琐的文本编辑任务,sed都能发挥巨大作用。
接下来,我们将展示10个必须掌握的sed单行命令,并通过可在本地运行的真实示例进行逐步讲解。即使你是sed的初学者,也能轻松上手,快速掌握这些实用技巧。
二、真实示例:创建测试文件
为了让大家更直观地感受sed命令的实际效果,我们先创建一个小型的真实样例文件。这个文件模拟了配置文件、日志或简单报告中的文本内容,方便你亲自运行sed命令,并观察文本内容的变化。
在终端中运行以下命令:
cat <
上述命令使用了here-document(< 此时,你可以使用cat sample.txt或less sample.txt命令打开文件。在文件中,你会看到多种不同类型的内容,包括普通文本、空行、重复单词(foo和bar)、带末尾空格的行以及带前导空格的行。这些精心设置的不同元素,将用于演示sed在处理真实场景中文本时的强大能力。 搜索并替换特定单词或模式,是sed最常见且实用的功能之一。 假设在sample.txt文件中,单词foo出现了多次,现在我们想要将所有foo的实例都改为大写的FOO,可以使用以下命令: 这里,-i选项表示原地编辑文件,直接修改sample.txt的内容;s是替换命令,foo是要查找的单词,FOO是替换后的内容,g表示全局替换,即替换每行中所有匹配的实例。 在编辑重要文件时,为了避免意外丢失数据,建议先创建备份。可以通过在-i标志后添加备份扩展名来实现: 执行该命令后,sample.txt文件会被编辑,同时会创建一个名为sample.txt.bak的备份文件,其中包含原始内容,这样即使操作出现问题,也能恢复到原始状态。 在处理配置文件、日志或脚本时,经常会遇到不必要的空行。虽然这些空行不会影响文件的功能,但会使文件显得杂乱无章,尤其是在排查问题或查看大量输出内容时,会增加阅读和分析的难度。 使用以下单行命令可以删除文件中的所有空行: 在这个命令中,/^$/表示匹配空行,^表示行首,$表示行尾,中间没有任何字符即代表空行;d是删除命令,sed会将匹配到的空行删除。 如果你希望保留原始文件,将清理后的结果保存到新文件中,可以使用重定向操作: 这样,原始的sample.txt文件保持不变,清理后的版本会被单独保存到cleaned.txt文件中。 在实际工作中,有时并不需要处理整个文件,只需查看特定行范围的内容,例如调试脚本、查看配置文件的关键部分,或从日志中提取相关片段。 要仅打印sample.txt文件中的第2到第4行,可以使用以下命令: -n选项表示禁止sed输出默认的处理结果,只输出我们指定的内容;2,4p中的2,4表示行号范围,p是打印命令。对sample.txt运行此命令后,输出如下: 在某些情况下,我们需要从文件中删除特定行,比如删除拼写错误的行、损坏的配置信息或无用的内容。 假设sample.txt文件的第3行内容是The quick brown fox,现在要删除这一行,可以运行以下命令: 默认情况下,sed会将编辑结果打印到终端,但不会直接修改文件内容,这样可以让我们安全地查看输出效果。输出示例如下: 如果确定要直接编辑文件,可以添加-i标志: 在处理文本文件时,我们常常需要替换单词或短语,但有时只希望替换每行的第一次出现,而不是所有实例。 使用以下命令可以实现这一需求: 该命令会将每行中第一个出现的bar改为大写的BAR,同一行中的其他bar保持不变。 如果想要替换每行的所有实例,则需要在命令末尾添加g标志: 在编辑配置文件或脚本时,有时需要在匹配特定模式的行前插入文本,例如添加注释或新的指令。 使用以下命令可以实现这一操作: 在这个命令中,/Pattern/是搜索词,sed会查找包含“Pattern”的行;i表示插入操作;“Before this line”是要插入的文本,它将被插入到匹配行之前。 sed的另一个强大功能是可以在特定行后自动插入新文本,这在处理配置文件、日志或大量输出文件时非常实用。 在sed中,a命令表示追加操作,它会在匹配给定模式的每行后添加新行。使用以下命令: 运行该命令时,sed会逐行扫描sample.txt文件,当找到包含“Pattern”的行时,不会修改原行内容,而是在该行之后插入指定的新行内容“After this line”。 有时我们需要完全替换整行内容,而不是仅修改部分内容,并且只替换包含特定关键字或模式的行。 使用以下命令可以实现这一功能: 在这个命令中,/Whitespace/用于告诉sed查找包含“Whitespace”的行(注意:sed的匹配默认区分大小写);c This line was replaced表示将匹配到的行整行替换为指定的字符串"This line was replaced"。无论行中是“Whitespace at end”还是“ Leading whitespace”,sed都会删除整行,并插入新的内容。 在实际项目中,比如处理 相关文件时,可能会有数十甚至数百个.html文件仍在使用旧的https://链接,而不是更安全的https://链接。如果手动修改每个文件,效率会非常低。 此时,sed可以帮助我们快速完成替换操作: -i标志表示原地编辑文件;'s/https:/https:/g'是替换命令,用于查找所有https:并替换为https:;末尾的g确保替换每行中的所有匹配项;通配符*.html会匹配当前目录中所有以.html结尾的文件。 这个操作在 迁移到HTTPS或清理代码以增强安全性时非常有用,但一定要记得先备份文件!更安全的做法是自动创建备份: 在文本文件中,行首或行尾存在多余的空格或制表符是一种常见的格式问题,尤其是在日志、配置文件或数据导出文件中。虽然这些空格看似无害,但可能会导致脚本执行错误、解析异常,甚至影响文本的视觉对齐效果。不过,借助sed可以轻松解决这个问题: 在这个命令中,s/^[ \t]*//用于移除所有前导空格(包括空格或制表符),其中^匹配行首,[ \t]*表示零个或多个空格或制表符;s/[ \t]*$//用于移除所有trailing空格,$表示锚定到行尾。分号;允许我们在单个sed命令中依次运行两个替换操作。 通过本文的学习,你已经了解了10个实用的sed单行命令,并通过真实示例进行了实践。这些命令并非只是炫酷的技巧,而是在编辑配置文件、清理日志或自动化重复文本编辑任务时,能够反复使用的高效工具。掌握这些sed命令,将极大地提升你在Linux系统中的文本处理能力,让日常的系统管理与运维工作更加轻松、高效。1. 原地替换文件中的单词
sed -i 's/foo/FOO/g' sample.txtsed -i.bak 's/foo/FOO/g' sample.txt2. 删除空行
sed '/^$/d' sample.txtsed '/^$/d' sample.txt > cleaned.txt3. 打印特定行
sed -n '2,4p' sample.txtThis is a test fileThe quick brown foxjumps over the lazy dog4. 删除特定行
sed '3d' sample.txt1. Welcome to Tecmint2. This is a test file3. jumps over the lazy dogsed -i '3d' sample.txt5. 仅替换每行的首次出现
sed 's/bar/BAR/' sample.txtsed 's/bar/BAR/g' sample.txt6. 在模式前插入行
sed '/Pattern/i Before this line' sample.txt7. 在模式后追加行
sed '/Pattern/a After this line' sample.txt8. 替换匹配模式的整行
sed '/Whitespace/c This line was replaced' sample.txt9. 同时替换多个文件
sed -i 's/https:/https:/g' *.htmlsed -i.bak 's/https:/https:/g' *.html10. 移除前导和trailing空格
sed 's/^[ \t]*//;s/[ \t]*$//' sample.txt三、总结
热门专题
热门推荐
《洛克王国世界》呼唤独角兽的正确姿势 在《洛克王国世界》的主线任务中,有时会遇到需要精确输入特定角色名称的环节。其中一个关键节点,便是要准确拼写出独角兽“伊利斯”的真名。很多玩家稍不注意就可能记错或用错字,导致任务流程在此停滞不前。这篇指南将为你清晰解析正确的输入方法,助你快速通关。 《洛克王国世界
《洛克王国世界》风眠圣所“向上的方法”任务图文通关指南 在《洛克王国世界》的风眠圣所探险过程中,很多玩家会在“找到向上的方法”这一环节遭遇卡点。实际上,只要理清思路、明确顺序,完成这个挑战并不困难。本攻略将为你提供一套经过验证的详细图文流程,帮助你一次性顺利通过。 最后的关键操作非常简单:准确判断风
《洛克王国世界》叶冕魔力猫打法全攻略:高效通关技巧解析 在《洛克王国世界》的主线剧情推进中,挑战初始精灵首领叶冕魔力猫是一个重要环节。许多玩家在这个关卡遇到了困难,感觉难以突破。不必担心,这份详尽的实战打法指南将为你提供清晰的过关思路,帮助你轻松击败叶冕魔力猫。 核心挑战思路与强力精灵推荐 与叶冕魔
《洛克王国世界》罗隐捕捉指南:高效获取圣羽翼王挑战关键战宠 在《洛克王国世界》中,成功挑战传说精灵圣羽翼王是许多训练师的终极目标之一。选择合适的战宠至关重要,而罗隐以其出色的对抗能力,已成为公认的核心攻略选择。那么,这只关键的宠物究竟在哪里可以捕获?本文将为你提供详尽的罗隐捕捉位置图解与实用技巧。
速览 在《大店小二》中,如何高效使用元宝和银两是新手玩家普遍面临的难题。资源有限,如何将每一分投入转化为最大收益?本文将深入解析两类资源的最优使用策略,核心原则是:元宝投资于长期价值,银两专注于核心养成。 大店小二元宝与银两使用优先级攻略 1 元宝使用指南 首要建议:若非充值玩家,请勿将元宝大量用





