getline
在下一行中讀取並將NR
計數器增加1.在使用getline
,awk
後,繼續使用下一行。在大多數情況下,這是所需的行爲。查看下一行,但不要使用它
在我的特殊情況下,我只需要查看下一行,並根據其內容閱讀下一行,或者我需要回溯一行。
我該如何回溯awk
中的一行?我試圖手動設置NR
計數器到NR=NR-1
但這不起作用。還是有沒有一種方法只看下一行而不改變NR
?
我需要向前看一行。在這種情況下,簡單地將該行保存在變量中並稍後參考該變量不起作用。我試圖在awk
中實現一種識字編程工具,其中主文件可能包含許多子文件。這樣的子文件以類似於"% file:file1"
的行開始。如果到達這樣的文件的末尾,如果具有較低縮進的行或到達具有諸如"% file:file2"
的行的另一行。
當我已經用getline讀取這一行時,不會使用匹配/% file:/
的所有行的規則集。這就是爲什麼我想重置NR
到上一行,然後awk
會再次讀取匹配/% file:/
的行,並執行相應的規則。
我開發了一種稱爲TXR的文本消除語言,它在面向行(「垂直」)和麪向字符(「水平」)匹配模式下都具有與隱式回溯相匹配的模式匹配。前視深度是任意數量的字符或線條。 TXR對於處理識字編程符號的任務幾乎是理想的。很難給出一個直接相關的例子;你能發佈完整的識字符號嗎? – Kaz 2012-04-19 20:42:37