У меня есть таблица snp150Common.txt
, где второе и третье поля $2 and $3
могут быть равными или нет.
Если они равны, я хочу, чтобы $2
стал $2-1
, так что:
chr1 10177 10177 rs367896724 - - -/C insertion near-gene-5
chr1 10352 10352 rs555500075 - - -/A insertion near-gene-5
chr1 11007 11008 rs575272151 C C C/G single near-gene-5
chr1 11011 11012 rs544419019 C C C/G single near-gene-5
chr1 13109 13110 rs540538026 G G A/G single intron
chr1 13115 13116 rs62635286 T T G/T single intron
chr1 13117 13118 rs62028691 A A C/T single intron
chr1 13272 13273 rs531730856 G G C/G single ncRNA
chr1 14463 14464 rs546169444 A A A/T single near-gene-3,ncRNA
становится:
chr1 10176 10177 rs367896724 - - -/C insertion near-gene-5
chr1 10351 10352 rs555500075 - - -/A insertion near-gene-5
chr1 11007 11008 rs575272151 C C C/G single near-gene-5
chr1 11011 11012 rs544419019 C C C/G single near-gene-5
chr1 13109 13110 rs540538026 G G A/G single intron
chr1 13115 13116 rs62635286 T T G/T single intron
chr1 13117 13118 rs62028691 A A C/T single intron
chr1 13272 13273 rs531730856 G G C/G single ncRNA
chr1 14463 14464 rs546169444 A A A/T single near-gene-3,ncRNA
Моя текущая команда адаптирована с https://askubuntu.com/a/312843:
zcat < snp150/snp150Common.txt.gz | head | awk '{ if ($2 == $3) $2=$2-1; print $0 }' | cut -f 2,3,4,5,8,9,10,12,16
дает тот же вывод:
chr1 10177 10177 rs367896724 - - -/C insertion near-gene-5
chr1 10352 10352 rs555500075 - - -/A insertion near-gene-5
chr1 11007 11008 rs575272151 C C C/G single near-gene-5
chr1 11011 11012 rs544419019 C C C/G single near-gene-5
chr1 13109 13110 rs540538026 G G A/G single intron
chr1 13115 13116 rs62635286 T T G/T single intron
chr1 13117 13118 rs62028691 A A C/T single intron
chr1 13272 13273 rs531730856 G G C/G single ncRNA
chr1 14463 14464 rs546169444 A A A/T single near-gene-3,ncRNA
Любая помощь очень ценится.