Sed命令代表Stream Editor,用于在Linux操作系统中执行基本的文本转换。sed是重要命令之一,它在文件操作中起主要作用,它可用于删除或删除与给定模式匹配的特定行,此外,它还用于删除文件中的特定行,它还能够从文件中删除表达式,该文件可以通过指定分隔符(例如逗号,制表符或空格)进行标识。本文列出了十五个实例解析,它们可以帮助你学好sed命令,此外,当你有一些执行sed命令的要求时,它可以节省大量时间。
前言 注意:由于它是演示目的所以,我使用不带-i选项的sed命令,它通过删除行来打印Linux终端上文件的内容。 但是,如果要在实际环境中从源文件中删除行,请在sed命令中使用-i选项。 为了测试这个,我创建了sed-demo.txt文件并添加了以下内容和行号以便更好地理解: # cat 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 参考:cat命令_Linux cat命令使用详解:连接文件并打印到标准输出设备上。
在Linux系统中使用sed命令从文件中删除行的实例 1)如何从文件中删除第一行? 如果要从文件中删除第一行,请使用以下语法。 N表示文件中的第N行,sed命令中的d选项用于删除行。 句法: 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文件中的第三行: # 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命令删除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 '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文件中与System或Linux模式匹配的行: # sed '/System\|Linux/d' sed-demo.txt 3 RHEL 4 Red Hat 5 Fedora 7 CentOS 8 Debian 9 Ubuntu 10 openSUSE 9)如何从文件中删除以指定字符开头的行? 以下sed命令将删除以给定字符开头的所有行。 为了测试这个,我创建了另一个名为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
相关主题 |