每个 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文件仍在使用旧的http://链接,而不是更安全的https://链接。如果手动修改每个文件,效率会非常低。 此时,sed可以帮助我们快速完成替换操作: -i标志表示原地编辑文件;'s/http:/https:/g'是替换命令,用于查找所有http:并替换为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/http:/https:/g' *.htmlsed -i.bak 's/http:/https:/g' *.html10. 移除前导和trailing空格
sed 's/^[ \t]*//;s/[ \t]*$//' sample.txt三、总结
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
小米米家洗衣机滚筒 10Kg 超薄全嵌版发售:1.25 洗净比,1199 元
小米米家洗衣机滚筒 10Kg 超薄全嵌版开售:1 25高洗净比,1199元入手智能洗护方案 今日晚间19:30,备受期待的米家洗衣机滚筒10公斤超薄全嵌式版本将正式上市。这款定价仅为1199元的洗衣机,为计划打造现代一体化厨房与阳台家居的消费者,提供了一个兼具高性价比与前沿智能体验的优质选择。 该款
英特尔:"Raptor Lake" 处理器仍是战略重要组成,短期内不会停产
英特尔重申“Raptor Lake”处理器的战略地位:短期内不会停产,市场供应充足 近期一则官方表态,给许多在“追新”与“实用”之间犹豫的DIY玩家带来了明确信号。4月6日,英特尔副总裁兼发烧友渠道业务总经理Robert Hallock在接受外媒Club386访谈时坚定指出,代号“Raptor La
M5 MacBook Air 16+512G 京东补货:国补后 7188 元,教育优惠版 6544 元
M5款MacBook Air补货速递:国补与教育优惠详解 近期,对于关注MacBook Air的用户来说,迎来了一波绝佳的入手时机。搭载全新M5芯片的新款MacBook Air官方起售价为8499元,现在叠加国家补贴政策,可享受高达15%的折扣优惠,最高能节省约1500元。此外,符合资质的高校学生及
性能怪兽!RTX 6090显卡大爆料 或2027年发售
2026年4月:英伟达RTX 6090,下一代性能王者的蓝图与展望 进入2026年第二季度,科技领域关于英伟达下一代旗舰显卡——GeForce RTX 6090的讨论持续升温,细节愈发清晰。多方泄露的信息共同勾勒出一幅令人振奋的图景:这款代号“Rubin”的图形处理器,极有可能成为GPU性能发展史上
消息称三星 Galaxy S27 系列手机将增加“Pro”型号,定位去掉 S Pen 的 Ultra
消息称三星 Galaxy S27 系列将新增“Pro”型号 据科技行业最新爆料,明年旗舰手机市场的竞争或将出现新变局。知名数码博主 @i冰宇宙 近期透露,三星正计划扩充 Galaxy S27 系列的产品线,有望推出一款全新的“Pro”型号。据悉,这款新机型的定位很明确:它将是一款移除了 S Pen
- 日榜
- 周榜
- 月榜
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

