Linux grep - 同じ番号を含む行を検索する

Linux grep - 同じ番号を含む行を検索する

私は現在、タンパク質の原子距離のファイルを扱っています。距離は同じ残基内にあるか、異なる残基の間にある。同じ残留物に距離を含むすべての線を並べ替え/検索して、個々に使用する新しいファイルに線を簡単にコピーする方法があるかどうか疑問に思います。このファイルの例は、同じ残基(164)内の距離と異なる残基(38、124)との間の距離の両方について以下に示されています。

サンプル入力は次のとおりです。

assign (resid 164 and name CD ) (resid 164 and name CE ) 4.6 2.6 2.6 ! 
assign (resid 38 and name CE* ) (resid 124 and name CA ) 4.6 2.6 2.6 ! 

...出力は次のようになります。

assign (resid 164 and name CD ) (resid 164 and name CE ) 4.6 2.6 2.6 ! 

2つの項目間の残基が同じであるためです。

ベストアンサー1

1行に同じパターンを2回一致させるには、次のようにします。逆参照グループをキャプチャするには

前任者。

grep -E '(resid [0-9]+ ).*\1'

または

grep -E 'resid ([0-9]+ ).*resid \1'

おすすめ記事