2016-08-11 106 views
1

我正在學習AWK中的正則表達式。在AWK [^ ]中匹配不在之內的任何字符。現在我需要提取那些'a',這些不是任何單詞的一部分。awk正則表達式

如果我的輸入文件是

a 
aa 
a+a 
.a.a 
bac 

的輸出將是

a+a 
.a.a 

由於A + A.a.a都沒有任何字,以便這些線打印。 所以我做了這樣的事情

awk '/[^[a-z]]a[^[a-z]]/ {print} input_file' 

但是這是行不通的。請幫忙!

+0

無論如何:'[^ [a-z]]'應該是'[^ a-z]' –

+0

嘗試'awk'/ [^ a-z] a [^ a-z]/{print} input_file''祝您好運。 – shellter

+0

'a'本身就是一個詞。這就是爲什麼我認爲它不應該在輸出 –

回答

4

這可能是你想要什麼:

$ awk '/[^[:alpha:]]a|a[^[:alpha:]]/' file 
a+a 
.a.a 

取決於你如何想處理的輸入文件a..a

+1

雖然我沒有提供一個正確記錄的問題,你已經提供了我想要的完美的東西。感謝那。 –