sed 一行流文本处理入门
【摘要】 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)