2014-07-23 52 views
1

我正在使用awk,我簡單地想要匹配以下內容:「= string」和NOT「= string」,例如說I有這樣的文件:在文件中使用awk搜索模式「= [char] [string]」

mike =string 
    mike = string 
    mike = string 
    mike =string 
    mike = string 

我想以下的輸出:

mike =string 
    mike =string 

注意:string是密碼字段,以便它可以是任何東西邁克= [[:明礬:] .. 。

由於某種原因,我無法弄清楚這一點!先謝謝你!

更新:答案:

awk '/=[[:alnum:]]/' file 

因爲我找的不當行AIX的passwd文件中沒有「=」號後的空格。我需要打印的線條爲用戶這樣的:

awk -v RS= -v ORS='\n\n' '/password =[[:alnum:]]/' shadow.aix 
+0

你已經試過了什麼?你目前的嘗試是什麼? 'mike = string'是兩個還是三個?如果兩個人分手?輸入中是否有其他字段? –

+0

'awk'適合列文件,爲什麼不使用'grep'或'sed'? – Fabricator

+0

感謝您的迴應,這工作:awk -v RS = -v ORS ='\ n \ n''/ password = [[:alnum:]] /'shadow.aix(我試圖打印陰影線文件,使用正則表達式犯了一些錯誤。再次感謝。 –

回答

1

這AWK應該工作:

awk '/=[[:alnum:]]/' file 

或本grep將工作太:

grep '=[[:alnum:]]' file 

更新:作爲根據您更新的問題,您可以使用此awk:

awk -F ' *= *' -v OFS=' =' '{print $1, $2}' file 
mike =string 
mike =string 
mike =string 
mike =string 
mike =string 
+0

謝謝,基本上我試圖打印出一個AIX'shadow'文件的行:awk -v RS = -v ORS ='\ n \ n''/ password = [[:alnum:]] /'shadow.aix –

+0

某些原因現在不起作用...嘆息。 –

+0

你的意思是說它現在工作之前不是? – anubhava