簡體   English   中英

使用AWK在CSV列中查找空白

[英]Finding gaps in csv column using AWK

我試圖使用AWK在列中的數字順序列表中查找空白。 我發現這個問題與我的要求相同,但是無法使其正常工作。 我的輸入是在csv中,看起來類似於以下內容。

aaa,bbb,ccc,ddd,eee,fff,ggg
0,22,33,44,55,66,77
1,88,99,11,12,13,14
2,154,165,-22,-31,-40,-49
3,220,231,-55,-74,-93,-112
6,418,429,-154,-203,-252,-301
7,484,495,-187,-246,-305,-364
8,550,561,-220,-289,-358,-427

我努力了

awk 'NR>1 && $1!=p+1{print p+1"-"$1-1}{p=$1}' file

並且即使存在范圍,它也會繼續打印。 我懷疑這可能是由於我從0開始而不是從1開始的值,很少有解決方法,但仍然無法使其正常工作。

我希望在有間隙時打印警告,例如在這種情況下“缺少4-5”

任何幫助深表感謝。

您需要稍作改動才能處理標頭和初始值(此處為0,在引用的腳本中未正確處理)

$ awk 'NR==1{p=$1-1; next} $1!=p+1{print p+1"-"$1-1} {p=$1}' file

5-19

您可以使用以下awk命令在csv文件的第一列中獲取缺少編號的輸出:

awk -F, '{while (NR>2 && $1 > p+1) print ++p; p=$1} 1' file.csv

aaa,bbb,ccc,ddd,eee,fff,ggg
0,22,33,44,55,66,77
1,88,99,11,12,13,14
2,154,165,-22,-31,-40,-49
3,220,231,-55,-74,-93,-112
4
5
6,418,429,-154,-203,-252,-301
7,484,495,-187,-246,-305,-364
8,550,561,-220,-289,-358,-427

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM