2012-04-12 39 views
0

我已經grep的查詢以下使用grep時,如何確保搜索字符串從一行的開始(不包括空格)開始?

$ grep -nr "ActiveChild\s*=" . 

這個發現之後whitespace-

ActiveChild = "ABC" 
    ActiveChild = "PQR" 
ActiveChild = "XYZ" 

然而ActiveChild的所有實例,這也給我造成像

If ActiveChild = "LMN" Then 

我想避免以上情況。我想確保「ActiveChild」是我正在搜索的行上出現的第一個單詞。它之前是否有空白並不重要。不幸的是,寫了類似

grep -nr "\s*ActiveChild\s*=" . 

根本沒有幫助。我該如何編寫這樣的查詢?此外,「查詢」是正確的詞,還是在grep的情況下使用的其他東西?

回答

1
kent$ cat test 
ActiveChild = "ABC" 
    ActiveChild = "PQR" 
ActiveChild = "XYZ" 
If ActiveChild = "LMN" Then 

kent$ grep -E '^\s*ActiveChild\s*=' test 
ActiveChild = "ABC" 
    ActiveChild = "PQR" 
ActiveChild = "XYZ" 
+0

爲什麼選擇擴展正則表達式? – CodeBlue 2012-04-12 14:14:25

+1

沒有特別的原因。在這種情況下,沒有E也可以。 – Kent 2012-04-12 14:20:17

+0

好的。感謝你的回答。所以^確保它從行的開頭開始。 – CodeBlue 2012-04-12 14:23:53

相關問題