1
想從第一列打印缺失的序列缺口 然後需要打印最小值&該第一列的最大序列 而且$ 2,substr($ 3,4,6),substr($ 4,4,6),$ 6,$ 8,$ 10字段的組合。 輸入文件不按第一列排序。awk要打印缺少序列缺口和最小 - 最大值:
Input.csv
21,abc,22-JUN-12.08:06:03,22-JUN-12.08:06:03,19-Apr-16,1,INR,RO0412,RC03,L7,,31
22,abc,22-JUN-12.08:06:03,22-JUN-12.08:06:03,19-Apr-16,1,INR,RO0412,RC03,L7,,31
23,abc,22-JUN-12.08:06:03,22-JUN-12.08:06:03,19-Apr-16,1,INR,RO0412,RC03,L7,,31
24,abc,30-JUN-12.01:06:49,30-JUN-12.01:06:49,19-Apr-16,1,INR,RO0412,RC03,L7,,29
28,abc,30-JUN-12.01:06:49,30-JUN-12.01:06:49,19-Apr-16,1,INR,RO0412,RC03,L7,,29
32,abc,29-MAY-13.12:05:11,29-MAY-13.12:05:11,15-Feb-17,1350,INR,RO0213,CD,K1,,30
38,abc,29-MAY-13.12:05:11,29-MAY-13.12:05:11,15-Feb-17,1350,INR,RO0213,CD,K1,,30
41,abc,20-FEB-14.11:02:37,20-FEB-14.11:02:37,31-Dec-20,650,INR,EN1113,ch650,S317,,28
46,abc,20-FEB-14.11:02:37,20-FEB-14.11:02:37,31-Dec-20,650,INR,EN1113,ch650,S317,,28
51,abc,20-FEB-14.11:02:37,20-FEB-14.11:02:37,31-Dec-20,650,INR,EN1113,ch650,S317,,28
52,abc,20-FEB-14.11:02:37,20-FEB-14.11:02:37,31-Dec-20,650,INR,EN1113,ch650,S317,,28
是否嘗試該命令,並獲得部分輸出:
cat Input.csv | \
awk -F, '{OFS=","; print $1,$2,substr($3,4,6),substr($4,4,6),$6,$8,$10}' | \
sort -k1 -t, | \
awk -F, 'BEGIN {OFS=","} (($1!=p+1) && ($7==p7)) {print p,p2,p3,p4,p5,p6,p7,p+1 "," $1-1,$1} {p=$1;p2=$2;p3=$3;p4=$4;p5=$5;p6=$6;p7=$7}'
上述命令輸出標題名稱是:
Minimum Seq ($1),$2,substr($3,4,6),substr($4,4,6),$6,$8,$10,start Missing Seq ($1),End Missing Seq ($1),Maximum Seq ($1)
24,abc,JUN-12,JUN-12,1,RO0412,L7,25,27,28
32,abc,MAY-13,MAY-13,1350,RO0213,K1,33,37,38
41,abc,FEB-14,FEB-14,650,EN1113,S317,42,45,46
46,abc,FEB-14,FEB-14,650,EN1113,S317,47,50,51
在上面的輸出 - 最低Seq($ 1),最大Seq($ 1)值與我預期的結果不符,請幫忙... 例如,在打印輸出第一行 - 最少SEQ應爲21不打印輸出24 第三行 - 最大SEQ應該是52不46
所需的輸出:
## $2,$3,$4,$6,$8,$10,"start Missing Seq ($1), ",End Missing Seq ($1) ,Minimum Seq ($1),Maximum Seq ($1) ##
abc,JUN-12,JUN-12,1,ROTN0412,L7,25,27,21,28
abc,MAY-13,MAY-13,1350,ROTN0213,K1,33,37,32,38
abc,FEB-14,FEB-14,650,CHEN1113,S317,42,45,41,52
abc,FEB-14,FEB-14,650,CHEN1113,S317,47,50,41,52
嘗試使用「編輯」按鈕並將問題的格式設置爲一點。這樣就不可能閱讀。 – fedorqui
感謝蒂莫西布朗的編輯.. – VNA
Hakon,非常感謝這冗長的腳本和你的努力,而運行這個我得到這個錯誤, -bash-3.2 $ perl Min_Max_MissingGap.pl 無法找到文件/ Slurp .pm的在@公司(@公司包含:/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.7/x86_64-linux-thread-多/usr/lib64/perl5/site_perl/5.8.6/x86_64-linux-thread-multi 多/usr/lib64/perl5/vendor_perl/5.8.5/ 多/usr/lib/perl5/5.8.8。)在Min_Max_MissingGap.pl線5 BEGIN失敗 - 編譯中止在Min_Max_MissingGap.pl線5 – VNA