gpt4 book ai didi

awk - 如果不是,awk中的语法错误

转载 作者:行者123 更新时间:2023-12-03 08:19:16 24 4
gpt4 key购买 nike

我在if else中使用awk语句。每次使用它时,都会出现语法错误。谁能告诉我该如何使用?我收到如下所示的语法错误。

码:

awk '{ FS = "=" ;if($1 ~ /Hi/) {if (!($1=="Hi")) {print $1;}} else {if($1=="bye") {print $1;}}} else {if(if($1=="good") {print $1;}}} END {print $1}'

输出:
awk: { FS = "=" ;if($1 ~ /Hi/) {if (!($1=="Hi")) {print $1;}} else {if($1=="bye") {print $1;}}} else {if(if($1=="good") {print $1;}}} END {print $1}

awk: ^ syntax error

awk: { FS = "=" ;if($1 ~ /Hi/) {if (!($1=="Hi")) {print $1;}} else {if($1=="bye") {print $1;}}} else {if(if($1=="good") {print $1;}}} END {print $1}

awk: ^ syntax error

awk: { FS = "=" ;if($1 ~ /Hi/) {if (!($1=="Hi")) {print $1;}} else {if($1=="bye") {print $1;}}} else {if(if($1=="good") {print $1;}}} END {print $1}

awk: ^ syntax error

最佳答案

问题

您的代码有很多错误。您的撑杆不平衡,间距差以及其他使调试困难的问题。最终,您会遇到语法和引用问题。

解决方案

您可以通过将分配移至脚本外的FS来简化代码。这更具可读性,并且不易出错。例如:

$ echo "foo=bar" | awk -F= '{print $1}'
foo

为了清楚起见,您也可以将分配移动到BEGIN块,除非在运行时将其重新分配给其他东西。
BEGIN { FS = "=" }

不管您做什么,如果重构代码以提高可读性,调试脚本的时间就会轻松得多。

关于awk - 如果不是,awk中的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11175788/

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