0

我想逐行比较我的数据。每个条目都有一个副本,并且在某些列中有些不同(它是制表符分隔的)。举个例子

1   0   chrX    121843122   255 16M
1   0   chrX    79062186    250 16M
2   0   chr3    79062186    255 16M
2   0   chr7    79062186    255 16M
3   0   chr3    166649831   255 16M   
3   0   chrX    12345678    255 16M

我想知道这对(基于column1)是否都有chrX,其余的列可能不同。

在上面的示例中,我将只保留(仅重要的是第 1 列相同,第 3 列对于两者都是 chrX。)

1   0   chrX    121843122   255 16M
1   0   chrX    79062186    250 16M

我想在 awk 中尝试一下,但它似乎只能按列工作。我如何使用 awk 或 grep 来实现它?

4

1 回答 1

1

这将比较成对的行,如果相应的 field1 和 field3 匹配,则打印两者。

awk '{
    prev=$0; f1=$1; f3=$3
    getline 
    if ($1 == f1 && $3 == f3 && $3 == "chrX") {
        print prev
        print
    }
}' filename
于 2013-07-04T15:55:39.320 回答