Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix Awk在满足条件的情况下,将一列替换为另一列_Unix_Awk - Fatal编程技术网

Unix Awk在满足条件的情况下,将一列替换为另一列

Unix Awk在满足条件的情况下,将一列替换为另一列,unix,awk,Unix,Awk,在psudocode中,如果第4列等于NULL,我尝试将第4列替换为第1列。否则,保持第4列不变。我目前正在尝试这一点,这并没有改变线路,我不知道为什么: 示例数据: grep NULL matrix.txt AAGGGCCCGGGGGG 0 0 3空 grep NULL matrix.txt | awk -F/t '{ $34 = ($34 == "NULL" ? $1 : $34) } 1' 你应该给我: AAGGGCCCGGGGGG0 0 3 AAGGGCCCGGGGGGGG 谢谢 修

在psudocode中,如果第4列等于NULL,我尝试将第4列替换为第1列。否则,保持第4列不变。我目前正在尝试这一点,这并没有改变线路,我不知道为什么: 示例数据:

grep NULL matrix.txt
AAGGGCCCGGGGGG 0 0 3空

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

AAGGGCCCGGGGGG0 0 3 AAGGGCCCGGGGGGGG


谢谢

修改您的awk

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

而且
/t
不正确。对于选项卡,它应该是
\t
。顺便说一句,它在没有
-F“\t”


修改您的awk

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

而且
/t
不正确。对于选项卡,它应该是
\t
。顺便说一句,它在没有
-F“\t”


实际上是5号,不是吗。我不知道OP为什么写第四个,而在这个例子中它看起来像第五个。@janos:Oops。。谢谢你纠正janos。甚至我都没有注意到它。@janos OP说的是第4栏,而不是第4栏。我猜OP认为在awk中列号以
0
开头。谢谢。我有更多的专栏,并试图缩短它的清晰度,但错过了改变一些变量。这很有效。实际上是第五次,不是吗。我不知道OP为什么写第四个,而在这个例子中它看起来像第五个。@janos:Oops。。谢谢你纠正janos。甚至我都没有注意到它。@janos OP说的是第4栏,而不是第4栏。我猜OP认为在awk中列号以
0
开头。谢谢。我有更多的专栏,并试图缩短它的清晰度,但错过了改变一些变量。这非常有效。无需使用
grep
,因为
awk
也可以进行搜索无需使用
grep
,因为
awk
也可以进行搜索
echo "AAGGGCCCGGGGGG 0 0 3 NULL"  | awk ' $5=="NULL"{$5=$1} 1'