簡體   English   中英

來自bash中文件的grep精確模式

[英]grep exact pattern from a file in bash

我的文件中有以下IP地址

3.3.3.1
3.3.3.11
3.3.3.111

我將此文件用作另一個程序的輸入文件。 在該程序中,它將grep每個IP地址。 但是當我grep內容時,我得到了一些錯誤的輸出。

喜歡

cat testfile | grep -o 3.3.3.1

但是我得到的輸出像

3.3.3.1
3.3.3.1
3.3.3.1

我只想獲取確切的輸出。 如何使用grep做到這一點?

使用以下命令:

grep -owF "3.3.3.1" tesfile

-o僅返回匹配項,而不返回整行。 -w為全字里grep,這意味着匹配必須括在非字字符像<space><tab>, ; 它可以防止grep與3.3.3.111 3.3.3.1匹配。

-F抓住固定字符串而不是模式。 這樣可以防止. 在IP地址中將其解釋為任何char ,這意味着grep將不匹配3a3b3c1 (或類似的內容)。

要僅匹配整個單詞,請使用grep -ow 3.3.3.1 testfile

更新:使用更強大的hek2mgl提供的解決方案。

您可以使用anhcors。

grep '^3\.3\.3\.1$' file

由於默認情況下grep使用正則表達式,因此您需要對點進行轉義以使grep與文字點字符匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM