我有一个看起来像这样的输入文件(第一列是位置编号,第二列是应该随时间增加的计数):
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
解决方法
原文地址:https://www.jb51.cc/linux/394814.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。