awk - 用一个输入保留单词“example”和“EXAMPLE”

awk - 用一个输入保留单词“example”和“EXAMPLE”

我试图只保留包含某些单词的客户。这是一个例子

< newname.txt awk 'BEGIN {FS=","} $7~/USA|United States/' > usa.txt

我遇到的问题是,如果他们有usaUNITED STATES那么UnItEd StAtEs他们就不会出口,因为他们是首都。如何运行此命令而不用大写/小写多次写入相同的单词。

答案1

tolower你可以尝试使用or来欺骗它toupper

awk 'BEGIN {FS=","} tolower($7)~/usa|united states/'

或者

awk 'BEGIN {FS=","} toupper($7)~/USA|UNITED STATES/'

答案2

您可以使用 IGNORECASE 标志 (!=0) 忽略所有正则表达式的大小写。至少那是呆呆的。

根据要求:一个例子

echo "eXaMpLe"|awk '{IGNORECASE=1}
/example/ { print $0; }
'
eXaMpLe

相关内容