2013-02-25 71 views
0

大家好,你們能幫我打印出RS中正則表達式的結果嗎?在RS中打印輸出正則表達式的結果

awk 'BEGIN {RS="--[0-9a-zA-Z]+--"} /pattern/' awk-test.txt 

圖案= 「 - [0-9A-ZA-Z] + - 」 可以等於RS之間的文本--95700e1b--或--0dcaf754--要不然 AWK打印出塊,我怎樣才能打印找到的RS呢?

PS抱歉我的英文不好。

+0

使用[[:alnum:]]代替[[0-9a- zA-Z]]爲便攜性,特別是在非英語爲母語的國家。 – 2013-02-25 23:49:50

回答

1

由於RS只能是便攜式awk腳本中的單個字符,因此我假設您使用的是gawk。在這種情況下,您可以參考RT,其中將包含與RS中指定的正則表達式匹配的文本。 (RT是記錄終止符,因此它是當前記錄末尾匹配RS而不是開頭的文本值)

+0

謝謝解決!) gawk'BEGIN {RS =「 - [0-9a-zA-Z] + - 」}/pattern/{print $ 0;打印RT}'awk-test.txt – user2108144 2013-02-26 10:02:19