运用 sed 命令高效地删除文件的特定行
正常来说,我们想要删除文件中的某些行内容,一般都是先打开这个文件,然后找到要删除的内容,再然后选中这些行并按删除键进行删除,这在数据量很少时是没有问题的。但是,一旦文件中的行数据非常多,而且数据冗杂的情况下,你还要用上面的方法去做的话就很恐怖了。为此,今天这篇文章将带大家一起学习运用 sed 命令行工具,即使在数据多而杂的情况下也能高效而优雅地删除文件中的特定行内容。
sed
是 Stream Editor 的简写,它用于在 Linux 中进行基本的文本转换,是文件操作的一个重要命令,所以,我们也可以用它来实现文本的删除操作。
下面是一些 sed
命令的使用示例,覆盖了大多数的使用场景,由浅入深地帮助你学习 sed
命令,让你轻松地实现高效删除文件的特定行内容。
首先我们准备一个演示文件 sed-demo.txt
。
# cat sed-demo.txt1 Linux Operating System2 Unix Operating System3 RHEL4 Red Hat5 Fedora6 Arch Linux7 CentOS8 Debian9 Ubuntu10 openSUSE
然后我们就可以运用 sed
命令进行实验了。
注意:-i 表示直接进行文件操作,而不在终端上显示结果。因为是演示所以这里不带 -i 选项,我们在实际中请带上 -i 选项。
1. 删除某一行
首先,我们先从删除某一行开始,比如删除第一行、最后一行,实际也就是第 N 行嘛。
删除第 N 行的命令格式:
sed 'Nd' file
我们来删除第一行