加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

如何使用sed命令删除文件中的行

发布时间:2019-08-29 06:12:46 所属栏目:Windows 来源:Magesh Maruthamuthu
导读:副标题#e# Sed 代表 流编辑器 Stream Editor ,常用于 Linux 中基本的文本处理。 sed 命令是 Linux 中的重要命令之一,在文件处理方面有着重要作用。可用于删除或移动与给定模式匹配的特定行。 它还可以删除文件中的特定行,它能够从文件中删除表达式,文件
副标题[/!--empirenews.page--]

如何使用sed命令删除文件中的行

Sed 代表流编辑器Stream Editor,常用于 Linux 中基本的文本处理。sed 命令是 Linux 中的重要命令之一,在文件处理方面有着重要作用。可用于删除或移动与给定模式匹配的特定行。

它还可以删除文件中的特定行,它能够从文件中删除表达式,文件可以通过指定分隔符(例如逗号、制表符或空格)进行标识。

本文列出了 15 个使用范例,它们可以帮助你掌握 sed 命令。

如果你能理解并且记住这些命令,在你需要使用 sed 时,这些命令就能派上用场,帮你节约很多时间。

注意:为了方便演示,我在执行 sed 命令时,不使用 -i 选项(因为这个选项会直接修改文件内容),被移除了行的文件内容将打印到 Linux 终端。

但是,如果你想在实际环境中从源文件中删除行,请在 sed 命令中使用 -i 选项。

演示之前,我创建了 sed-demo.txt 文件,并添加了以下内容和相应行号以便更好地理解。

  1. # cat sed-demo.txt
  2.  
  3. 1 Linux Operating System
  4. 2 Unix Operating System
  5. 3 RHEL
  6. 4 Red Hat
  7. 5 Fedora
  8. 6 Arch Linux
  9. 7 CentOS
  10. 8 Debian
  11. 9 Ubuntu
  12. 10 openSUSE

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

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

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

语法:

  1. sed 'Nd' file

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

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

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

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

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

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

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

3) 如何删除指定行?

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

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

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

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

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

5) 如何删除多行内容?

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

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

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

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

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!