unix下如何删除文本文件中包含特定字符串的行

在我们使用linux/unix的系统过程中,查找文件中是否包含指定的字符串是我们最常用的操作之一;

同样,删除文本文件中包含指定字符串的行,也是我们经常遇到的。

本文将与您分享如何删除文本文件中包含指定字符串的行。


删除文本文件中包含指定字符串的行有多种方法:可以使用 , 或 grep命令。


下面我们将通过示例与您分享详细的操作方法。

以下文本内容是我们测试文件的内容,我们将以以下内容为例:

<code>Hello everyone!
I share the linux tutorial with you at www.linuxcommands.site.
sed is a text processing command.
Awk is also a text processing command.
grep is also a text processing command.
They are our most commonly used tool set.
They are great./<code>


使用sed命令删除包含指定字符串的行

在下面的示例中,我们将使用sed命令的action选项删除文本文件中包含指定字符串的行。如下所示,我们删除文件中包含字符串“ sed”的行。

<code>➜  ~ sed '/sed/d' text.txt/<code>
linux/unix下如何删除文本文件中包含特定字符串的行

您还可以使用 sed -i '/sed/d' text.txt 直接修改文件的内容。

sed选项说明:
* -i 直接编辑文件,如果指定扩展名,则以指定扩展名保存备份。

* 动作选项:d 删除匹配行


使用grep命令删除包含指定字符串的行

Grep命令,我们更多地使用它来匹配文本文件中的指定字符串。Grep 命令既然可以匹配,那么一定也可以排除,所以,这里我们使用grep -v 选项。

在以下示例中,我们使用grep命令删除包含指定字符串的行。如下所示,我们删除文件中包含字符串“ grep”的行。

<code>➜  ~ grep -v "grep" text.txt/<code>
linux/unix下如何删除文本文件中包含特定字符串的行


grep -v的结果,我们只需要 使用“>”将结果重定向到新文件即可。

使用awk命令删除包含指定字符串的行

在下面的示例中,我们将使用awk命令删除文本文件中包含指定内容的行。

<code>➜  ~ awk '!/Awk/{print $0}' text.txt/<code>
linux/unix下如何删除文本文件中包含特定字符串的行


分享到:


相關文章: