sed的具体用法

简介: sed的具体用法

sed 是一种强大的流编辑器,它在Unix和类Unix系统中广泛用于处理文本文件。以下是一些基本的用法和示例:

基本语法

# 单个命令行内编写命令
sed [选项] 'command' inputfile

# 使用-e参数添加多个命令
sed [选项] -e 'command1' -e 'command2' inputfile

# 从脚本文件读取命令
sed [选项] -f scriptfile inputfile

# 其中常用的选项包括:
- e, --expression=   后接一个编辑命令
- f, --file=        从指定文件中读取编辑命令
- i                直接修改原文件(默认不修改原文件,仅输出到标准输出)
- n, --quiet, --silent    只打印经过命令处理的行(静默模式)

常用命令及操作符:

  • 删除行

    • d 删除当前行
    • 5d 删除第5行
    • /pattern/d 删除包含匹配pattern的行
  • 替换

    • s/old/new/ 替换行中第一个出现的old为new
    • s/old/new/g 替换行中所有出现的old为new
    • s/old/new/gi 替换行中所有出现的old为new,并忽略大小写
    • 3,5s/old/new/g 在第3至第5行范围内替换old为new
  • 插入

    • a\text 在当前行后追加文本text
    • 3a\text 在第3行后追加文本text
  • 插入(在行首)

    • i\text 在当前行前插入文本text
  • 复制并打印行

    • p 打印当前模式空间中的行(默认行为)
    • p-n 静默模式下打印行
  • 跳转

    • t label 如果上一条命令替换成功,则跳转到label标签
    • b label 不论上一条命令是否成功都跳转到label标签
  • 读取外部文件内容

    • r file 在当前行后读取并插入file的内容
  • 写入文件

    • w file 将当前行写入到file中

示例:

  1. 删除每一行以'#'开始的注释:

    sed '/^#/d' inputFile.txt
    
  2. 将每一行中的"apple"替换为"banana":

    sed 's/apple/banana/g' inputFile.txt
    
  3. 在每一行末尾添加字符串 ".end" 并保存更改到原文件:

    sed -i '$ s/$/.end/' inputFile.txt
    
  4. 插入一行 "New Line" 在文件的第二行:

    sed '2i\\New Line' inputFile.txt
    

以上仅为简单示例,sed 的功能远不止于此,它可以结合正则表达式进行复杂的数据流编辑。

目录
相关文章
|
6月前
|
Perl
sed的用法
sed的用法
58 2
|
6月前
|
Perl
sed的基本语法
sed的基本语法
58 2
|
6月前
|
存储 Perl
sed的具体用法
sed的具体用法
32 3
|
6月前
|
Perl
sed的复杂用法
sed的复杂用法
74 2
|
Perl
sed 基本用法
sed 基本用法
90 0
|
缓存 关系型数据库 MySQL