sed 一行流文本处理入门

举报
yd_266952352 发表于 2026/11/08 05:08:39 2026/11/08
【摘要】 sed 是 Linux 文本处理瑞士军刀,替换、删除、插入一行命令搞定。本文用最常用的八个例子带你入门。

日志清洗、批量替换、配置修改,sed 一条命令就能完成,不必打开文件手动改。它的核心思路是「逐行读入、按脚本处理、输出结果」,掌握几个高频用法就够了。

一、替换:s 命令

把文件里所有 foo 换成 bar:sed 's/foo/bar/g' file.txt。不加 g 只替换每行第一处;只想替换第 2 处:s/foo/bar/2。替换结果想写回文件,用 -i 参数(macOS 要写 sed -i '');改前先备份:sed -i.bak 's/foo/bar/g' file.txt,出问题随时回滚。

二、按行删除与打印

删空行:sed '/^$/d';删注释行:sed '/^#/d';只打印第 5 到 10 行:sed -n '5,10p',配合大日志文件比 head 加 tail 组合更直接。打印匹配行:sed -n '/ERROR/p' 等价于 grep,但可以和其它 sed 命令串在同一条里。

三、插入与行首行尾

在第 3 行前插入一行:sed '3i new line';在每行行尾加分号:sed 's/$/;/';去掉行首空白:sed 's/^[[:space:]]*//'。正则里 . * [] 都可用,特殊字符如 / 用别的分隔符更清爽:sed 's|/usr/local|/opt|g'。

排错提示:GNU sed 与 BSD sed(macOS)在 -i 参数上语法不同,跨平台脚本要小心。把常用的一行流存进 shell 历史或笔记,下次处理文本直接调用,效率翻倍。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。