我正在尝试构建一个带有基因组坐标的 .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 的建议将不胜感激!谢谢
答案1
这应该足够了:
awk '{$NF=($NF<0 ? "-" : "+")}1' file
$NF=($NF<0 ? "-" : "+")
如果最后一个字段为负数,则将其替换为减号,否则将其替换为加号。1
打印该行。
答案2
逗号
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 -