SED 入门实测:用三个小例子理解选行、删除和全局替换
【摘要】 在 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)