2016-01-01 46 views

回答

1

你的邏輯是倒退和雙重負面的,這使得很難理解。如果我正確地理解了你,那麼如果RS不存在,那麼你不想刪除ORS,那是因爲如果RS存在,你只想添加ORS。

的最簡單的方法是使用GAWK用於RT所以每個輸出記錄是由封端的輸入記錄相同的字符串終止。

awk 'NR > 1 { printf "%s%s", $0, RT }' inputfile 
0

一種便攜式的方法,而不是依靠GNU awk中RT變量,就是增加一個虛擬記錄您的輸入:這後面沒有分隔虛擬記錄。

然後輸入被嚴格分開的,你只是有兩種情況處理:你要麼有一個空白第二到最後一個記錄,在這種情況下,真正的最後一個記錄是第三個到最後。否則,倒數第二個記錄纔是真正的最後一個記錄。

如果你跟蹤一個變量最近看到一個非空的記錄,你可以在處理結束打印記錄。

有各種各樣的方式來添加材料,以輸入的結束。例如,中cat一些有用的用途:

(cat real_input; printf "<record_sep>dummy_rec") | awk '...' 

cat real_input dummy_suffix | awk '...' 
相關問題