首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AWK中的忽略大小写

AWK中的忽略大小写
EN

Stack Overflow用户
提问于 2011-03-08 13:55:15
回答 4查看 38.7K关注 0票数 28

下面的命令可以正常工作。

代码语言:javascript
运行
复制
# some command | awk '/(\<^create\>|\<^alter\>|\<^drop\>)/,/;/' 
create table todel1 (id int) max_rows=2
/*!*/;
alter table todel1 engine=InnoDB
/*!*/;
create database common
/*!*/;
create database rules
/*!*/;

但它只匹配小写的"create“、"alter”等。我想在awk语句中使用IGNORECASE开关,以便它将返回搜索词的所有实例。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-08 14:01:58

IGNORECASE = 1;添加到awk命令的开头,如下所示:

代码语言:javascript
运行
复制
bash-3.2$ echo "Create" | awk '/^create/;'
bash-3.2$ echo "Create" | awk 'IGNORECASE = 1;/^create/;'
Create
票数 22
EN

Stack Overflow用户

发布于 2015-12-07 19:11:36

下面的行将执行OR测试,而不是AND测试:

代码语言:javascript
运行
复制
echo -e "Create\nAny text" | awk 'IGNORECASE = 1;/^create/;'
Create
Create
Any text

BEGIN这个特殊的单词解决了这个问题:

代码语言:javascript
运行
复制
echo -e "Create\nAny text" | awk 'BEGIN{IGNORECASE = 1}/^create/;'
Create

希望这能有所帮助。

塞巴斯蒂安。

票数 18
EN

Stack Overflow用户

发布于 2012-07-13 18:05:15

对于那些使用IGNORECASE标志无用的旧awk的用户:

选项1

代码语言:javascript
运行
复制
echo "CreAte" | awk '/^[Cc][Rr][Ee][Aa][Tt][Ee]/'

选项2 (感谢@mwfearnley)

代码语言:javascript
运行
复制
echo "CreAte" | awk 'tolower($0) ~ /^create/'
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5228892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档