如果符合条件,则用另一列替换列

时间:2017-11-02 20:52:39

标签: unix awk

在psudocode中,如果第4列等于NULL,我试图用第1列替换第4列。否则保持第4列相同。我正在尝试这个,这不是改变线,我不知道为什么: 示例数据:

grep NULL matrix.txt

AAGGGCCCGGGGGG 0 0 3 NULL

grep NULL matrix.txt | awk -F/t '{ $34 = ($34 == "NULL" ? $1 : $34) } 1'

应该给我:

AAGGGCCCGGGGGG 0 0 3 AAGGGCCCGGGGGG

谢谢!

1 个答案:

答案 0 :(得分:3)

修改 awk

$34替换为$5,因为您需要检查5th字段而不是34th

/t也不正确。选项卡应为\t。顺便说一句,它也可以在没有-F "\t"

的情况下工作
echo "AAGGGCCCGGGGGG 0 0 3 NULL"  | awk ' $5=="NULL"{$5=$1} 1'