我想逐行比较我的数据。每个条目都有一个副本,有些列有些不同(它是制表符分隔的)。作为一个例子
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列与第1列相同而第3列为chrX。)
1 0 chrX 121843122 255 16M
1 0 chrX 79062186 250 16M
我想在awk中尝试这个,但它似乎只能按列工作。我如何使用awk或grep实现这个?
答案 0 :(得分:1)
这比较了几行,如果相应的field1和field3匹配,则打印两者。
awk '{
prev=$0; f1=$1; f3=$3
getline
if ($1 == f1 && $3 == f3 && $3 == "chrX") {
print prev
print
}
}' filename