Linux sed用法示例权威详解

sed — Linux 手册页

名称语法

sed - 流编辑器

sed [选项]…[脚本] [输入文件]…

描述

sed 是一种流编辑器,用于对文本进行转换和处理。它按照行处理输入文件,并根据提供的脚本来执行指定的操作。sed 最早出现在 Unix 系统中,是根据 ed 编辑器开发而来。它的设计目标是对文本进行高效的批量处理和替换操作。

选项

适用于 sed 命令的主要选项有:

选项描述
-n, --quiet, --silent不输出模式空间的内容到标准输出
–debug注释程序执行过程
-e SCRIPT, --expression=SCRIPT添加脚本以进行处理
-f SCRIPT-FILE, --file=SCRIPT-FILE从文件中读取脚本
–follow-symlinks在原地处理时跟随符号链接
-i[SUFFIX], --in-place[=SUFFIX]直接修改文件内容,可选地创建备份文件
-l N, --line-length=N指定 `l’ 命令的所需换行长度
–posix禁用所有 GNU 扩展
-E, -r, --regexp-extended在脚本中使用扩展正则表达式(为了可移植性,请使用 POSIX -E)
-s, --separate将文件视为独立的文件而不是单个连续流
–sandbox以沙盒模式运行(禁用 e/r/w 命令)
-u, --unbuffered从输入文件加载最小量的数据,并更频繁地刷新输出缓冲区
-z, --null-data使用 NUL 字符分隔行

十种主要用法及其代码示例

以下是 sed 命令的十种常见用法及相应的代码示例,包括输入和输出:

1.替换文本中的字符串:

  • 输入:file.txt
    Hello, old text!
    
  • 命令:sed 's/old/new/' file.txt
  • 输出:
    Hello, new text!
    

2.全局替换文本中的字符串:

  • 输入:file.txt
    old old old
    
  • 命令:sed 's/old/new/g' file.txt
  • 输出:
    new new new
    

3.删除匹配到的行:

  • 输入:file.txt
    Line 1
    Matched line
    Line 3
    
  • 命令:sed '/Matched/d' file.txt
  • 输出:
    Line 1
    Line 3
    

4.删除空行:

  • 输入:file.txt
    Line 1
    
    Line 3
    
  • 命令:sed '/^$/d' file.txt
  • 输出:
    Line 1
    Line 3
    

5.在指定行前插入新行:

  • 输入:file.txt
    Line 1
    Line 2
    Line 3
    
  • 命令:sed '2i\New Line' file.txt
  • 输出:
    Line 1
    New Line
    Line 2
    Line 3
    

6.在指定行后插入新行:

  • 输入:file.txt
    Line 1
    Line 2
    Line 3
    
  • 命令:sed '2a\New Line' file.txt
  • 输出:
    Line 1
    Line 2
    New Line
    Line 3
    

7.打印指定行的内容:

  • 输入:file.txt
    Line 1
    Line 2
    Line 3
    
  • 命令:sed -n '2p' file.txt
  • 输出:
    Line 2
    

8.打印指定范围内的行:

  • 输入:file.txt
    Line 1
    Line 2
    Line 3
    Line 4
    Line 5
    
  • 命令:sed -n '2,4p' file.txt
  • 输出:
    Line 2
    Line 3
    Line 4
    

9.只打印匹配到模式的行:

  • 输入:file.txt
    Apple
    Banana
    Orange
    
  • 命令:sed -n '/an/p' file.txt
  • 输出:
    Banana
    Orange
    

10.使用脚本文件进行处理:

  • 输入:file.txt

  • 脚本文件:script.sed

    s/Hello/Hi/
    
    - 命令:`sed -f script.sed file.txt`
    - 输出:
    
    Hi, World!
    

其他类似命令

  • awk:awk 是一个功能强大的文本处理工具,它提供了更高级的脚本语法和更复杂的数据操作功能。

详细区别

sed 和 awk 都是用于处理文本的流编辑器,但它们之间存在一些区别。主要区别包括:

  • sed 主要用于对文本进行替换、删除、插入等简单操作,适用于行级别的处理。
  • awk 提供了更高级的脚本语法和数据处理功能,可以按字段对文本进行分割、计算、过滤等更复杂的操作。

官方链接

sed 官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BigDataMLApplication

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值