我正在尝试使用以下命令根据if else条件以及从第n列到最后一列的字段打印特定列。此命令未提供正确的输出。尝试这样时会抛出语法错误。当在外面单独尝试其他时,它会提供输出但不是正确的格式。
paste file1 file2 | awk '{if($1 != "NULL" && $2 != "NULL") print $3,$1,$4,$5,$2,$6;for (i = 7; i <= NF; i++) { printf("%s ", $i); } printf("\n") ;
else if($1 != "NULL" && $2 == "NULL") print $3,$1,$4,$5,$6,$7;for (i = 8; i <= NF; i++) { printf("%s ", $i); } printf("\n");}'
答案 0 :(得分:0)
使用正确答案编辑
我在下面以更易读的方式编写了这些内容,因此您可以看到括号应该从哪里开始和结束。尽管如此,请将其全部放在一条线上。
awk '{
if($1 != "NULL" && $2 != "NULL"){
printf("%s %s %s %s %s %s %s", $3,$4,$1,$5,$6,$2,$7)
for (i = 7; i <= NF; i++){
printf("%s ", $i)
}
printf("\n")
}
else if($1 != "NULL" && $2 == "NULL"){
printf("%s %s %s %s %s %s %s", $3,$4,$1,$5,$6,$7,$8)
for (i = 8; i <= NF; i++){
printf("%s ", $i)
}
printf("\n")
}
}' file