替换列中每个符号 (+/-) 的值

Ama*_*ios 0 awk

我正在尝试使用基因组坐标构建一个 .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
Run Code Online (Sandbox Code Playgroud)

我需要用符号替换第 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      -
Run Code Online (Sandbox Code Playgroud)

任何关于 awk 的建议将不胜感激!谢谢

Qua*_*odo 5

这应该足够了:

awk '{$NF=($NF<0 ? "-" : "+")}1' file
Run Code Online (Sandbox Code Playgroud)
  • $NF=($NF<0 ? "-" : "+") 如果最后一个字段为负,则用减号替换它,否则用加号替换它。

  • 1 打印该行。