我有一个awk系列:
awk -F'/|//' '{for(i=1;i<=NF;i++) if($i=="CUST")break;print $(i)}'
我希望CUST
不区分大小写,并且我使用的是($i==CUST)
,因为该文件包含CUSTOMER
之类的字词,这些字词不应该匹配。
我尝试使用Character类,如:if($i=="[Cc][Uu][Ss][Tt]")
,但会引发错误。
答案 0 :(得分:2)
当你的正则表达式比较运算符是==
并且你的正则表达式字符串应该像~
时,你的错误是你正在与/^[Cc][Uu][Ss][Tt]$/
进行字符串比较(注意锚点{ {1}}和^
停止过匹配):
$
更好的方法是使用IGNORECASE
变量或tolower, toupper
函数。
答案 1 :(得分:2)
使用awk
toupper($i)
或
tolower($i)
像这样:
awk -F'/|//' '{for (i=1;i<=NF;i++) if (tolower($i) == "cust")break; print $i}'