Замена значений по знаку (+/-) в столбце

Я пытаюсь создать файл .bed с координатами генома, и у меня почти получилось. Просто пропустил последний шаг. У меня есть файл, который выглядит так:

LQNS02278165.1  13104710        13109495        BEL-1_PH-I      4785
LQNS02278165.1  9139127         9142308         BEL-1_PH-I      3181
LQNS02278165.1  9222957         9221339         BEL-1_PH-I      -1618

Мне нужно заменить 5 столбец на знак, который будет ориентацией в геноме. в идеале вывод выглядит так:

LQNS02278165.1  13104710        13109495        BEL-1_PH-I      +
LQNS02278165.1  9139127         9142308         BEL-1_PH-I      +
LQNS02278165.1  9222957         9221339         BEL-1_PH-I      -

Любое предложение по awk будет очень признательно! Спасибо

0
29.06.2020, 00:40
2 ответа

Этого должно быть достаточно:

awk '{$NF=($NF<0 ? "-" : "+")}1' file
  • $NF=($NF<0 ? "-" : "+")Если последнее поле отрицательное, замените его знаком минус, иначе замените знаком плюс.

  • 1печатает строку.

5
18.03.2021, 23:23

команда

awk '{if ($NF ~ "-"){$NF="-";print }else{$NF="+";print }}' filename

выход

LQNS02278165.1 13104710 13109495 BEL-1_PH-I +
LQNS02278165.1 9139127 9142308 BEL-1_PH-I +
LQNS02278165.1 9222957 9221339 BEL-1_PH-I -
0
18.03.2021, 23:23

Теги

Похожие вопросы