gpt4 book ai didi

linux - 如果输出字段之一为空,awk 如何打印 "NA"

转载 作者:行者123 更新时间:2023-12-02 21:46:38 27 4
gpt4 key购买 nike

如果输出列为空,我会尝试打印“NA”,例如

$cat file.txt
111||aa1|11a|key
|bbb|aa2|22a|key
333|ccc||33a|key
444|ddd||44a|key
555|eee|aa5|55a|key

如果我执行 awk,我就会像

$awk -F'|' '{print $1,$2,$3}' file.txt
111 aa1
bbb aa2
333 ccc
444 ddd
555 eee aa5

但我希望空列用“NA”填充,如下所示

111 NA aa1
NA bbb aa2
333 ccc NA
444 ddd NA
555 eee aa5

尝试过:

$awk -F'|' '{print '!$1 $1="NA"}',$2,$3}' file.txt 
awk -F'|' '{print $1,if($2=="") $2="NA",$3}' file.txt

如果该字段为空,请帮我填写“NA”

最佳答案

您可以使用这个awk:

awk -F '|' '{sub(/^\|/, "NA|"); gsub(/\|\|/, "|NA|"); print $1, $2, $3}' file

111 NA aa1
NA bbb aa2
333 ccc NA
444 ddd NA
555 eee aa5

另一种变体:

awk -F '|' '{for(i=1; i<=3; i++) if ($i=="") $i="NA"; print $1, $2, $3}' file

111 NA aa1
NA bbb aa2
333 ccc NA
444 ddd NA
555 eee aa5

关于linux - 如果输出字段之一为空,awk 如何打印 "NA",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59184177/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com