SED 入门实测:用三个小例子理解选行、删除和全局替换

举报
yd_267997597 发表于 2026/10/22 00:13:53 2026/10/22
【摘要】 在 KooLabs 实验终端实际运行三个最小例子,说明 sed -n 与 p 的配合、按行删除以及 s 命令的全局替换,并区分标准输出与原地修改文件。

从三个最小例子理解 sed

在华为云 KooLabs 的 Linux SED 实验中,可以先用标准输入练习文本处理,再考虑修改配置文件。下面三个命令已经在本次实验终端实际执行,输出与文中一致。文章由 AI 辅助整理。

1. 只打印第 2 行

printf '%s\n' alpha beta gamma | sed -n '2p'

输出:

beta

printf 把三个单词分别放在三行。sed 的地址 2 选中第 2 行,p 表示打印。-n 关闭默认输出,因此只保留显式打印的这一行。如果去掉 -n,sed 仍会默认输出各行,选中的行还会额外打印一次。

2. 删除第 2 行

printf '%s\n' alpha beta gamma | sed '2d'

输出:

alpha
gamma

d 表示删除当前匹配的行。这里没有使用 -n,未被删除的行会正常输出。与前一个例子对比,更容易记住:p 常与 -n 配合筛选输出,d 则可以直接用于排除指定行。

3. 替换一行中的全部匹配项

printf '%s\n' '2023 2023' | sed 's/2023/xxxx/g'

输出:

xxxx xxxx

s/旧内容/新内容/ 是替换命令,结尾的 g 表示替换当前行中的所有匹配项。若省略 g,这个例子只会替换每行的第一个 2023。这里的“全局”针对当前行中的匹配,不是修改整个系统。

练习时先分清输入、命令与输出

这三个例子都通过管道传入临时文本,没有使用 -i,因此没有改写系统配置文件。可以先修改输入内容和行号,观察结果,再用自己创建的测试文件练习原地编辑。检查命令时,分别确认地址选中了哪些行、p/d/s 执行什么动作,以及默认输出是否开启。

练习结束后,通过平台的“结束实验”退出,交由平台清理临时实验环境。

实验入口:Linux 文本“三剑客” — SED。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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