Isso pode funcionar
awk '$5 == "+" {$2-=5000;$3+=2000}; $5 == "-"{$3+=5000;$2-=2000};{print}' file
Eu tenho um arquivo de entrada no seguinte formato.
#track
chr11 61731756 61735132 FTH1 -
chr12 6643584 6647537 GAPDH +
chr11 18415935 18429765 LDHA +
chr12 21788274 21810728 LDHB -
chr22 24236564 24237409 MIF +
chr4 6641817 6644470 MRFAP1 +
chr15 72491369 72523727 PKM -
chr10 73576054 73611082 PSAP -
chr2 85132762 85133799 TMSB10 +
chr13 45911303 45915297 TPT1 -
Eu quero obter um arquivo de saída no qual, se a quinta coluna for +, subtraia 5000 da coluna 2 e adicione 2000 à coluna 3, de forma a gerar a saída seguinte
chr11 18410935 18431765 LDHA +
chr2 85127762 85135799 TMSB10 +
Se a quinta coluna for "-", adicione 5000 à coluna 3 e subtraia 2000 da coluna 2 para obter a seguinte saída
chr11 61729756 61740132 FTH1 -
chr12 21786274 21815728 LDHB -
Então, quero que a saída esteja na mesma ordem da entrada. Também quero mostrar a primeira linha #track como é.
Eu quero fazer isso no awk. Como posso fazer isso?
Eu sou novo no awk e ainda aprendo.
Obrigado
Tags awk