zoukankan      html  css  js  c++  java
  • sed 删除

    1) 如何删除文件的第一行?

    使用以下语法删除文件首行。

    N 表示文件中的第 N 行,d 选项在 sed 命令中用于删除一行。

    语法:

    sed 'Nd' file
    复制代码

    使用以下 sed 命令删除 sed-demo.txt 中的第一行。

    # sed '1d' sed-demo.txt
    
    2 Unix Operating System
    3 RHEL
    4 Red Hat
    5 Fedora
    6 Arch Linux
    7 CentOS
    8 Debian
    9 Ubuntu
    10 openSUSE
    复制代码

    2) 如何删除文件的最后一行?

    使用以下语法删除文件最后一行。

    $ 符号表示文件的最后一行。

    使用以下 sed 命令删除 sed-demo.txt 中的最后一行。

    # sed '$d' sed-demo.txt
    
    1 Linux Operating System
    2 Unix Operating System
    3 RHEL
    4 Red Hat
    5 Fedora
    6 Arch Linux
    7 CentOS
    8 Debian
    9 Ubuntu
    复制代码

    3) 如何删除指定行?

    使用以下 sed 命令删除 sed-demo.txt 中的第 3 行。

    # sed '3d' sed-demo.txt
    
    1 Linux Operating System
    2 Unix Operating System
    4 Red Hat
    5 Fedora
    6 Arch Linux
    7 CentOS
    8 Debian
    9 Ubuntu
    10 openSUSE
    复制代码

    4) 如何删除指定范围内的行?

    使用以下 sed 命令删除 sed-demo.txt 中的第 5 到 7 行。

    # sed '5,7d' sed-demo.txt
    
    1 Linux Operating System
    2 Unix Operating System
    3 RHEL
    4 Red Hat
    8 Debian
    9 Ubuntu
    10 openSUSE
    复制代码

    5) 如何删除多行内容?

    sed 命令能够删除给定行的集合。

    本例中,下面的 sed 命令删除了第 1 行、第 5 行、第 9 行和最后一行。

    # sed '1d;5d;9d;$d' sed-demo.txt
    
    2 Unix Operating System
    3 RHEL
    4 Red Hat
    6 Arch Linux
    7 CentOS
    8 Debian
    复制代码

    5a) 如何删除指定范围以外的行?

    使用以下 sed 命令删除 sed-demo.txt 中第 3 到 6 行范围以外的所有行。

    # sed '3,6!d' sed-demo.txt
    
    3 RHEL
    4 Red Hat
    5 Fedora
    6 Arch Linux
    复制代码

    6) 如何删除空行?

    使用以下 sed 命令删除 sed-demo.txt 中的空行。

    # sed '/^$/d' sed-demo.txt
    
    1 Linux Operating System
    2 Unix Operating System
    3 RHEL
    4 Red Hat
    5 Fedora
    6 Arch Linux
    7 CentOS
    8 Debian
    9 Ubuntu
    10 openSUSE
    复制代码

    7) 如何删除包含某个模式的行?

    使用以下 sed 命令删除 sed-demo.txt 中匹配到 System 模式的行。

    # sed '/System/d' sed-demo.txt
    
    3 RHEL
    4 Red Hat
    5 Fedora
    6 Arch Linux
    7 CentOS
    8 Debian
    9 Ubuntu
    10 openSUSE
    复制代码

    8) 如何删除包含字符串集合中某个字符串的行?

    使用以下 sed 命令删除 sed-demo.txt 中匹配到 SystemLinux 表达式的行。

    # sed '/System|Linux/d' sed-demo.txt
    
    3 RHEL
    4 Red Hat
    5 Fedora
    7 CentOS
    8 Debian
    9 Ubuntu
    10 openSUSE
    复制代码

    9) 如何删除以指定字符开头的行?

    为了测试,我创建了 sed-demo-1.txt 文件,并添加了以下内容。

    # cat sed-demo-1.txt
    
    Linux Operating System
    Unix Operating System
    RHEL
    Red Hat
    Fedora
    debian
    ubuntu
    Arch Linux - 1
    2 - Manjaro
    3 4 5 6
    复制代码

    使用以下 sed 命令删除以 R 字符开头的所有行。

    # sed '/^R/d' sed-demo-1.txt
    
    Linux Operating System
    Unix Operating System
    Fedora
    debian
    ubuntu
    Arch Linux - 1
    2 - Manjaro
    3 4 5 6
    复制代码

    使用以下 sed 命令删除 R 或者 F 字符开头的所有行。

    # sed '/^[RF]/d' sed-demo-1.txt
    
    Linux Operating System
    Unix Operating System
    debian
    ubuntu
    Arch Linux - 1
    2 - Manjaro
    3 4 5 6
    复制代码

    10) 如何删除以指定字符结尾的行?

    使用以下 sed 命令删除 m 字符结尾的所有行。

    # sed '/m$/d' sed-demo.txt
    
    3 RHEL
    4 Red Hat
    5 Fedora
    6 Arch Linux
    7 CentOS
    8 Debian
    9 Ubuntu
    10 openSUSE
    复制代码

    使用以下 sed 命令删除 x 或者 m 字符结尾的所有行。

    # sed '/[xm]$/d' sed-demo.txt
    
    3 RHEL
    4 Red Hat
    5 Fedora
    7 CentOS
    8 Debian
    9 Ubuntu
    10 openSUSE
    复制代码

    11) 如何删除所有大写字母开头的行?

    使用以下 sed 命令删除所有大写字母开头的行。

    # sed '/^[A-Z]/d' sed-demo-1.txt
    
    debian
    ubuntu
    2 - Manjaro
    3 4 5 6
    复制代码

    12) 如何删除指定范围内匹配模式的行?

    使用以下 sed 命令删除第 1 到 6 行中包含 Linux 表达式的行。

    # sed '1,6{/Linux/d;}' sed-demo.txt
    
    2 Unix Operating System
    3 RHEL
    4 Red Hat
    5 Fedora
    7 CentOS
    8 Debian
    9 Ubuntu
    10 openSUSE
    复制代码

    13) 如何删除匹配模式的行及其下一行?

    使用以下 sed 命令删除包含 System 表达式的行以及它的下一行。

    # sed '/System/{N;d;}' sed-demo.txt
    
    3 RHEL
    4 Red Hat
    5 Fedora
    6 Arch Linux
    7 CentOS
    8 Debian
    9 Ubuntu
    10 openSUSE
    复制代码

    14) 如何删除包含数字的行?

    使用以下 sed 命令删除所有包含数字的行。

    # sed '/[0-9]/d' sed-demo-1.txt
    
    Linux Operating System
    Unix Operating System
    RHEL
    Red Hat
    Fedora
    debian
    ubuntu
    复制代码

    使用以下 sed 命令删除所有以数字开头的行。

    # sed '/^[0-9]/d' sed-demo-1.txt
    
    Linux Operating System
    Unix Operating System
    RHEL
    Red Hat
    Fedora
    debian
    ubuntu
    Arch Linux - 1
    复制代码

    使用以下 sed 命令删除所有以数字结尾的行。

    # sed '/[0-9]$/d' sed-demo-1.txt
    
    Linux Operating System
    Unix Operating System
    RHEL
    Red Hat
    Fedora
    debian
    ubuntu
    2 - Manjaro
    复制代码

    15) 如何删除包含字母的行?

    使用以下 sed 命令删除所有包含字母的行。

    # sed '/[A-Za-z]/d' sed-demo-1.txt
    
    3 4 5 6 
  • 相关阅读:
    Scrapy 概览笔记
    Python 依赖版本控制 (requirements.txt 文件生成和使用)
    Python 虚拟空间的使用
    macOS 所有版本 JDK 安装指南 (with Homebrew)
    鉴权那些事
    Java 位运算符和 int 类型的实现
    ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门
    如何做好一次知识或技术分享
    ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门
    ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门
  • 原文地址:https://www.cnblogs.com/kakaisgood/p/12829599.html
Copyright © 2011-2022 走看看