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下如何刪除文本文件中包含特定字符串的行


分享到:


相關文章: