0
点赞
收藏
分享

微信扫一扫

Linux ​​sed​命令

JakietYu 2024-11-26 阅读 15

sed(stream editor)是 Linux 和 Unix 系统中一个非常强大的流编辑器,它用于对文本数据进行过滤和转换。以下是 sed 命令的一些基本用法和功能:

基本语法

sed [选项]... '命令' 文件...

或者

sed [选项]... -e '命令1' -e '命令2'... -e '命令N' 文件...

或者

sed [选项]... -f 脚本文件 文件...

常用选项

  • -e:直接在命令行上进行 sed 动作编辑。
  • -f:从脚本文件中读取编辑命令。
  • -i:直接修改文件内容,不输出到标准输出。
  • -n:仅打印经过 sed 处理后的行。
  • -r:使用扩展正则表达式。

常用命令

  • s:替换操作。
  • d:删除操作。
  • a:追加操作。
  • i:插入操作。
  • c:替换操作,与 s 类似,但是替换整行。

替换操作(s)

基本语法:

s/查找模式/替换模式/标志

  • g:全局替换。
  • p:打印结果。
  • i:忽略大小写。

实例

  1. 替换文本

sed 's/old/new/' filename

这将在 filename 文件中查找所有 "old" 字符串并替换为 "new"。

  1. 全局替换

sed 's/old/new/g' filename

这将替换文件中所有 "old" 字符串为 "new"。

  1. 忽略大小写替换

sed 's/old/new/I' filename

这将忽略大小写,替换所有 "old" 字符串为 "new"。

  1. 删除行

sed 'd' filename

这将删除文件中的所有行。

  1. 追加文本

sed '$a\

new line' filename

这将在文件的末尾追加一行文本 "new line"。

6. **插入文本**:
```bash
sed '1i\new line' filename

这将在文件的第一行之前插入一行文本 "new line"。

  1. 使用扩展正则表达式

sed -r 's/(\d+)-(\d+)/\1.\2/' filename

这将使用扩展正则表达式将 "123-456" 替换为 "123.456"。

  1. 直接修改文件

sed -i 's/old/new/' filename

这将直接修改文件内容,将所有 "old" 替换为 "new"。

sed 命令非常灵活,可以通过组合不同的命令和选项来实现复杂的文本处理任务。

举报

相关推荐

0 条评论