linux awk读取下一行,awk解决方案,用于将当前行与下一行进行比较,并根据条件打印其中一行...

我有一个看起来像这样的输入文件(第一列是位置编号,第二列是应该随时间增加的计数):

1 0

1 2

1 6

1 7

1 7

1 8

1 7

1 7

1 9

1 9

1 10

1 10

1 9

1 10

1 10

1 10

1 10

1 10

1 10

1 9

1 10

1 10

1 10

1 10

1 10

1 10

并且我想修复它看起来像这样(替换计数随先前计数减少):

1 0

1 2

1 6

1 7

1 7

1 8

1 8

1 8

1 9

1 9

1 10

1 10

1 10

1 10

1 10

1 10

1 10

1 10

1 10

1 10

1 10

1 10

1 10

1 10

1 10

1 10

我一直在尝试使用awk,但是因为我似乎无法弄清楚如何重置行号(NR?)所以它会读取每一行并且它是下一行,而不是两行一次.这是我到目前为止的代码,有什么想法吗?

awk '{a=$1; b=$2; getline; c=$1; d=$2; if (a==c && b<=d) print a"\t"b; else print c"\t"d}' original.txt > fixed.txt

此外,这是我目前得到的输出:

1 0

1 6

1 7

1 7

1 9

1 10

1 9

1 10

1 10

1 9

1 10

1 10

1 10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值