linux/unix下如何删除文本文件中包含特定字符串的行
在我们使用linux/unix的系统过程中,查找文件中是否包含指定的字符串是我们最常用的操作之一;
同样,删除文本文件中包含指定字符串的行,也是我们经常遇到的。
本文将与您分享如何删除文本文件中包含指定字符串的行。
删除文本文件中包含指定字符串的行有多种方法:可以使用 sed命令,awk命令 或 grep命令。
下面我们将通过示例与您分享详细的操作方法。
以下文本内容是我们测试文件的内容,我们将以以下内容为例:
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.
使用sed命令删除包含指定字符串的行
在下面的示例中,我们将使用sed命令的action选项删除文本文件中包含指定字符串的行。如下所示,我们删除文件中包含字符串“ sed”的行。
➜ ~ sed '/sed/d' text.txt
您还可以使用 sed -i '/sed/d' text.txt 直接修改文件的内容。
sed选项说明:
* -i 直接编辑文件,如果指定扩展名,则以指定扩展名保存备份。
* 动作选项:d 删除匹配行
使用grep命令删除包含指定字符串的行
Grep命令,我们更多地使用它来匹配文本文件中的指定字符串。Grep 命令既然可以匹配,那么一定也可以排除,所以,这里我们使用grep -v 选项。
在以下示例中,我们使用grep命令删除包含指定字符串的行。如下所示,我们删除文件中包含字符串“ grep”的行。
➜ ~ grep -v "grep" text.txt
grep -v的结果,我们只需要 使用“>”将结果重定向到新文件即可。
使用awk命令删除包含指定字符串的行
在下面的示例中,我们将使用awk命令删除文本文件中包含指定内容的行。
➜ ~ awk '!/Awk/{print $0}' text.txt
请先 后发表评论~