前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux三板斧之:sed

Linux三板斧之:sed

作者头像
披头
发布2023-08-17 09:07:05
1270
发布2023-08-17 09:07:05
举报
文章被收录于专栏:datartisandatartisan

sed 是 Linux三板斧之一,是一种非常强大的文本编辑器。它可以对文本文件进行添加、删除、替换、注释等操作。sed 的基本语法是:

代码语言:javascript
复制
sed option 'action' filename

这意味着对 filename 文件执行 action 所指定的编辑操作。例如,我们要在 /etc/passwd 文件中将“bash”替换为“zsh”,可以使用:

代码语言:javascript
复制
sed 's/bash/zsh/' /etc/passwd

这会输出 passwd 文件的内容,但是将每行中的“bash”替换为“zsh”。

sed的常用选项与动作

sed有许多选项与操作来控制编辑动作:

  • -i: 直接修改文件内容,而不是输出到屏幕
  • -n: 不输出未修改的行,只输出被sed修改过的行
  • a: 在指定行的下一行添加一行或多行文本
  • d: 删除指定行
  • s: 查找并替换,类似于vi中的替换功能
  • y: 将字符翻译成其他字符
  • p: 打印指定行
  • i: 在指定行前插入一行或多行文本
  • c: 替换指定行
  • g: 全局替换,即不止替换每一行的第一个模式匹配
  • #注释

例如:

代码语言:javascript
复制
sed -i 's/bash/zsh/' /etc/passwd     # 直接编辑/etc/passwd文件  
sed -n 's/bash/zsh/p' /etc/passwd    # 只输出替换过的行
sed '3a\hello' /etc/passwd           # 在第3行后添加"hello"  
sed '3d' /etc/passwd                # 删除第3行   
sed 's/bash/zsh/' /etc/passwd        # 将bash替换为zsh
sed 'y/abc/def/' /etc/passwd         # 将a翻译成d,b翻译成e,c翻译成f
sed -n '10,20p' /etc/passwd          # 只打印第10到20行
sed '2i\hello' /etc/passwd            # 在第二行前插入"hello"
sed '3c\hello' /etc/passwd            # 将第三行替换为"hello"  
sed 's/bash/zsh/g' /etc/passwd        # 全局替换bash为zsh
sed '/^#/d' /etc/passwd              # 删除所有注释行

sed 是一个功能强大的文本编辑器,熟练掌握各种选项与动作,几乎可以实现任何常见的文本编辑操作。结合正则表达式,sed 可以轻松编辑复杂的文本文件。sed 常用于批量修改文件内容、过滤与格式化文本等。使用 sed 编辑过的文件,内容和格式看上去就像手工编辑过的一样,这使得 sed 成为自动化文本处理不可多得的工具。

总之,sed 是 Linux 环境下必不可少的命令之一。掌握 sed 可以极大提高工作效率,并使许多日常的文本编辑工作自动化。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-05-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据科学探究 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • sed的常用选项与动作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档