我必須製作一個awk腳本,用於處理連續3天發生的事件,我有一個包含日期和列的月份列,我正在測試它們以分析序列,並且我不知道如何打印線。這是我有什麼:如何在AWK腳本中指定要打印的行?
BEGIN{
count=0;
dia=0;
}
{
day=$2;
month=$3;
if(dia==31 && day==1 && month==02 || month==04 || month==06 || month==09 || month==11){
count+=1
}
else if(dia==30 && day==1 && month==03 || month==05 || month==07 || month==08 || month==10 || month==12){
count+=1
}
else if(dia==28 && day==1 && month==03){
count+=1
}
else if(day==dia+1){
count+=1;
}
else {
count=0;
}
if(count==3){
for(i=NR-4;i<=NR;i++){
print ??? (line i)
}
count=0;
}
dia=day;
}
我打算做一些數組,但我相信如果我可以打印這些方式會更容易。
我的輸入數據是文件,如這些:
83032 18 07 0000 -99 -99 20.4 7.6 6.88
83032 27 08 0000 -99 -99 30.6 6.1 21
06 0000 -99 20.4 -99 4.9 11.12
06 0000 -99 -99 18.7 0.5 11.2
07 0000 -99 -99 33.5 7.7 24
83037 05 07 0000 -99 -99 23.3 10.1 11.28
83037 17 07 0000 -99 -99 21.1 10.2 11.1
83037 18 07 0000 -99 -99 20.7 7.1 11.26
,我想僅舉具有連續3天(第2列)線,使這樣的輸出:
83037 29 06 0000 -99 -99 20.4 4.9 11.12
83037 30 06 0000 -99 -99 18.7 0.5 11.2
83037 01 07 0000 -99 33.5 -99 7.7 24
編輯您的問題,包括清晰,準確,可測試的樣本輸入和預期輸出。你的腳本有一個名爲'dia'和'''的變量 - 是一個錯字,它應該是一個變量嗎?如果不是,他們是什麼意思?你有(或可以得到)GNU awk(試試'awk --version')? –
如果我理解你正在嘗試做的正確事情,將日/月轉換爲序列號並對一個單調序列進行不間斷的序列/間隙分析可能會更容易。 – karakfa
@karakfa我不知道你提到的功能和過程,我如何將它應用到我的腳本中? – lazzari26