蚊章汇 - 空行
type: channel
link: https://linuxcn.bwsl.wang/tag/%E7%A9%BA%E8%A1%8C/
items: 在 Linux 中如何删除文件中的空行

在 Linux 中如何删除文件中的空行
type: item
date: 2019-03-17T21:36:00+08:00
description: 有时你可能需要在 Linux 中删除某个文件中的空行。如果是的，你可以使用下面方法中的其中一个。有很多方法可以做到，但我在这里只是列举一些简单的方法。你可能已经知道 grep、awk 和 sed 命令是专门用来处理文本数据的工具。如果你想了解更多关于这些命令的文章，请访问这几个 URL：在 Linux 中创建指定大小的文件的几种方法，在 Linux 中创建一个文件的几种方法 以及 在 Linux 中删除一个文件中的匹配的字符串。这些属于高级命令，它们可用在大多数 shell 脚本中执行所需的操作。下列 5 种方法可以做到。sed：过滤和替换文本的流编辑器。grep：输出匹配到的行。cat：合并文件并打印内容到标准输出。tr：替换或删除字符。awk：awk 工具用于执行 awk 语言编写的程序，专门用于文本处理。perl：Perl 是一种用于处理文本的编程语言。我创建了一个 2daygeek.txt 文件来测试这些命令。下面是文件的内容。$ cat 2daygeek.txt 2daygeek.com is a best Linux blog to learn Linux. It's FIVE years old blog. This website is maintained by Magesh M, it's licensed under CC BY-NC 4.0. He got two GIRL babys. Her names are Tanisha & Renusha.现在一切就绪，我们准备开始用多种方法来验证。使用 sed 命令sed 是一个 流编辑器 stream editor 。流编辑器是用来编辑输入流（文件或管道）中的文本的。$ sed '/^$/d' 2daygeek.txt 2daygeek.com is a best Linux blog to learn Linux. It's FIVE years old blog. This website is maintained by Magesh M, it's licensed under CC BY-NC 4.0. He got two GIRL babes. Her names are Tanisha & Renusha.以下是命令展开的细节：sed： 该命令本身。//： 标记匹配范围。^： 匹配字符串开头。$： 匹配字符串结尾。d： 删除匹配的字符串。2daygeek.txt： 源文件名。使用 grep 命令grep 可以通过正则表达式在文件中搜索。该表达式可以是一行或多行空行分割的字符，grep 会打印所有匹配的内容。$ grep . 2daygeek.txt or $ grep -Ev "^$" 2daygeek.txt or $ grep -v -e '^$' 2daygeek.txt 2daygeek.com is a best Linux blog to learn Linux. It's FIVE years old blog. This website is maintained by Magesh M, it's licensed under CC BY-NC 4.0. He got two GIRL babes. Her names are Tanisha & Renusha.以下是命令展开的细节：grep： 该命令本身。.： 替换任意字符。^： 匹配字符串开头。$： 匹配字符串结尾。E： 使用扩展正则匹配模式。e： 使用常规正则匹配模式。v： 反向匹配。2daygeek.txt： 源文件名。使用 awk 命令awk 可以执行使用 awk 语言写的脚本，大多是专用于处理文本的。awk 脚本是一系列 awk 命令和正则的组合。$ awk NF 2daygeek.txt or $ awk '!/^$/' 2daygeek.txt or $ awk '/./' 2daygeek.txt 2daygeek.com is a best Linux blog to learn Linux. It's FIVE years old blog. This website is maintained by Magesh M, it's licensed under CC BY-NC 4.0. He got two GIRL babes. Her names are Tanisha & Renusha.以下是命令展开的细节：awk： 该命令本身。//： 标记匹配范围。^： 匹配字符串开头。$： 匹配字符串结尾。.： 匹配任意字符。!： 删除匹配的字符串。2daygeek.txt： 源文件名。使用 cat 和 tr 命令 组合cat 是 串联（拼接） co…