[英]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.