Grep

‘grep -v’ 是什麼 ^………“’ 意思是?

  • February 6, 2021

我寫了這樣一行diff fileA.txt fileB.txt | grep -v "^[11,12d9]"。如果沒有該grep部分,輸出將如下所示:

1d0  
< loop  
11,12d9  
< polo  
< pool  

但是使用grep,輸出將如下所示:

< loop  
< polo  
< pool  

我認為這grep -v有點像反向搜尋。但我不明白這^[11,12d9]部分,它有什麼作用?

grep -v "^[11,12d9]"

是的,正如您發現的那樣,它用於反轉匹配並將返回與給定模式-v不匹配的行。 ^[11,12d9]

並且^[11,12d9]正在做的是說匹配字元,[...]如果它們出現在一行^的開頭(是行錨的開頭)然後忽略這些行(因為使用了-v反向匹配);

1所以基本上以、,、或字元之一開頭的2行將被忽略(在字元類中重複字元也將被忽略)。d``9

但如果您想忽略以 string 開頭的行11,12d9,則需要grep -v '^11,12d9'.


*與問題無關,但要記錄有關字元類中的],^-字元的使用:

if^字元:它可以放在任何地方,[]但不能放在第一個字元;如果它是第一個字元,它會對該類中的字元進行否定。

if]字元:它應該是第一個字元。

if-字元:它應該是最後一個字元。

引用自:https://unix.stackexchange.com/questions/632991