我需要使用awk搜索关键字,但是我想执行不区分大小写(不区分大小写)的搜索。
我认为最好的方法是将搜索字词(“关键字”)和awk同时读取的目标行都大写。根据这个问题,我如何使用toupper
所有大写字母进行打印,但是我不知道如何在匹配项中使用它,因为该答案仅显示了打印内容,而没有将大写文本保留在变量中。
在给出此输入的情况下,这是一个示例:
blablabla
&&&Key Word&&&
I want all
these text and numbers 123
and chars !"£$%&
as output
&&&KEY WORD&&&
blablabla
我想要这个输出:
I want all
these text and numbers 123
and chars !"£$%&
as output
这就是我所拥有的,但是我不知道如何添加toupper
:
awk "BEGIN {p=0}; /&&&key word&&&/ { p = ! p ; next } ; p { print }" text.txt
awk 'toupper($0)~/&&&KEY WORD&&&/ { p = ! p ; next } ; p;' text.txt
。不需要该BEGIN
块,并且由于默认操作是打印,因此p;
就足够了。