我很新使用AWK。我只是發現了FNR
變量。我只是想知道在處理文件之前是否有可能獲得之前的總記錄數? 所以FNR
在文件末尾。總記錄數
我只是需要做這樣的
awk 'FNR<TOTALRECORDS-4 {print}'
東西爲了刪除文件的最後4行。 感謝
我很新使用AWK。我只是發現了FNR
變量。我只是想知道在處理文件之前是否有可能獲得之前的總記錄數? 所以FNR
在文件末尾。總記錄數
我只是需要做這樣的
awk 'FNR<TOTALRECORDS-4 {print}'
東西爲了刪除文件的最後4行。 感謝
如果你只是想打印所有,但最後4行的文件中,使用不同的工具。但是,如果您正在使用awk進行其他一些處理,並且需要合併這些處理,只需將行存儲在緩衝區中並根據需要進行打印。也就是說,存儲最近的4行,並在得到換行符時將最後一行打印在緩衝區中。例如:
awk 'NR>4 { print a[i%4]} {a[i++%4]=$0}' input
這會在數組中保留4行a
。如果我們位於文件的前4行,則不要執行任何操作,而是將行存儲在a
中。如果我們的行數大於4,那麼你要做的第一件事是打印返回的4行(存儲在a
的索引i%4
)。可以根據需要在這兩個行爲語句之間放置操作$0
的命令。
要刪除一個文件的最後4行,你可以使用head
:
head -n -4 somefile > outputfile
for i in \'seq 116 \';做echo $ i;完成| awk'{a [i ++%4] = $ 0} END {for(i = 0; i
打印[0] -a [ 3]在END中是如果總行數不是4的倍數,它會改變順序。 –