GNU sedを使用して、行に基づいてパターンを識別できますか?つまり、sed to IDを使用しているパターンに改行を挿入するにはどうすればよいですか?
たとえば、次のデータセット(実際にははるかに大きい)では、重複を検索したときに削除されるべきエラーがありますが、情報が2行でわずかに異なるためではありません(現時点では関係ありません)。 )。
この場合、元のファイルからエラーを完全に削除します。つまり、ファイル内で2行が連続している場合、rs####
これらの2つのコピーと、それに続く6行を消去します。 。それらを新しいファイルに再配置するのは良いことですが、最も重要なのは、それらが元のファイルから削除されることです。
rs1038864 16 73762557 A G
1 1633 0.5835 -0.0004 0.0035
1 1643 0.8902 0.004436 0.004354
0 0 0 0 0
rs1019567 16 83343715 G T
rs1019567 16 83343715 G T
1 1641 0.4692 0.0009 0.0035
1 559 0.4612 -0.0025 0.0060
1 1643 0.5178 -0.002244 0.002745
1 1643 0.5178 -0.002244 0.002745
1 1909 0.493842692 0.0008 0.0027
1 1950 0.493842692 0.0008 0.0027
rs1038556 16 55132072 C T
1 6388 0.7773 0.0020 0.0044
1 6843 0.1161 0.001379 0.004275
1 1509 0.978660942 0.0041 0.0096
rs1019797 16 87788686 C G
rs1019797 16 87788686 C G
1 1639 0.717 0.0022 0.0038
1 5557 0.7193 0.0020 0.0064
1 1643 0.6691 -0.001044 0.002888
1 6843 0.6691 -0.001044 0.002888
1 1959 0.315280799 -0.0041 0.0032
1 1909 0.315280799 -0.0041 0.0032
rs1038887 16 62660698 A G
1 1688 0.4947 -0.0028 0.0035
0 0 0 0 0
1 1909 0.464393658 0.0007 0.0028
何かのようなもの、
sed -i '/^rs.*d
^rs.*/,+6d' test.data
多分
sed -i '/^rs.*;^rs.*/,+6d' test.data
?どんな考えでもいただければ幸いです!