【问题标题】:Extract rows where value in one column equals value in another column +1?提取一列中的值等于另一列中的值+1的行?
【发布时间】:2016-05-04 20:36:08
【问题描述】:

我有一个制表符分隔的文本文件,如下所示:

1   10019   10020   rs775809821
1   10055   10055   rs768019142
1   10107   10108   rs62651026
1   10108   10109   rs376007522
1   10128   10128   rs796688738
1   10138   10139   rs368469931
1   10144   10145   rs144773400
1   10146   10147   rs779258992
1   10149   10150   rs371194064
1   10165   10165   s796884232

我想提取第 2 列中的值等于第 1 + 1 列中的值的行,并将它们定向到新文件。所以对于上面的例子,期望的输出是:

1   10019   10020   rs775809821
1   10107   10108   rs62651026
1   10108   10109   rs376007522
1   10138   10139   rs368469931
1   10144   10145   rs144773400
1   10146   10147   rs779258992
1   10149   10150   s371194064

我认为这可以使用 awk 来完成,但我不确定从哪里开始。任何投入将不胜感激。

【问题讨论】:

    标签: shell unix awk


    【解决方案1】:
    awk '$3 == $2 + 1' < input > output
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 2015-08-03
      • 2011-12-10
      • 1970-01-01
      相关资源
      最近更新 更多