다음 형식의 입력 파일이 있습니다.
#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 -
열 5가 +이면 열 2에서 5000을 뺀 다음 열 3에 2000을 추가하여 다음이 출력되는 출력 파일을 원합니다.
chr11 18410935 18431765 LDHA +
chr2 85127762 85135799 TMSB10 +
열 5에 "-"가 포함된 경우 열 3에 5000을 더하고 열 2에서 2000을 빼면 다음과 같은 출력이 생성됩니다.
chr11 61729756 61740132 FTH1 -
chr12 21786274 21815728 LDHB -
그래서 출력이 입력과 동일한 순서로 이루어지기를 원합니다. 또한 첫 번째 줄 #track을 그대로 출력하고 싶습니다.
나는 이것을 awk에서하고 싶다. 어떻게 해야 하나요?
답변1
이것은 효과가 있을 수 있습니다
awk '$5 == "+" {$2-=5000;$3+=2000}; $5 == "-"{$3+=5000;$2-=2000};{print}' file