我想要使用awk獲取以特定字符串開頭的所有行。開始一個新行的Unix字符開始
我使用下面的代碼:
awk -v string="$string" '$0 ~ " "string {
如果$字符串= ABC它會得到有空間ABC空間
這意味着這個詞abcd的所有行不符合條件
但我想這樣做的話是在第乞求線路。 意味着" "string
不會工作。
所以,我需要的字符是信號線的起始字符/序列
我想要使用awk獲取以特定字符串開頭的所有行。開始一個新行的Unix字符開始
我使用下面的代碼:
awk -v string="$string" '$0 ~ " "string {
如果$字符串= ABC它會得到有空間ABC空間
這意味着這個詞abcd的所有行不符合條件
但我想這樣做的話是在第乞求線路。 意味着" "string
不會工作。
所以,我需要的字符是信號線的起始字符/序列
您可以使用行啓動錨^
:
awk -v string="$string" '$0 ~ "^"string {
這聽起來就像是grep的工作:
grep "^$string"
但請注意,無論是grep還是發佈的awk解決方案都在尋找字符串,他們正在尋找正則表達式。
尋找一個線啓動開始於一個字符串,你需要:
awk -v string="$string" 'index($0,string) == 1'
,或者如果你想串,無非是空白,簡單地包圍:
awk -v string="$string" '$1 == string'
謝謝,工作 – user3597432
你應該可以使用'「(^ |)」string「(| $)」'來表示在該單詞之前的行或空白的開始,以及在該行之後的行結束或空白。 –
@AvinashRaj:在斜槓內,'string'正在尋找字符串'string',而不是變量。 –