【发布时间】:2016-10-14 20:02:17
【问题描述】:
我尝试使用 AWK 查找列中数字顺序列表中的空白。我发现this question 与我的要求相同,但无法使其正常工作。 我的输入在 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”
非常感谢任何帮助。
【问题讨论】:
-
你的预期输出是什么?
-
要么您的描述错误,要么您的示例错误,因为您的描述说您的输入是 CSV,但您的示例不包含逗号。修正您的问题,使其准确无误。
-
@EdMorton 我已经用 CSV 更新了这个问题。当我从excel复制数据时,它已经删除了逗号。我的道歉
-
@anubhava 我希望打印缺失的范围,在本例中为 4-5