以下命令按预期工作。
# 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开关,这样它就会返回所有搜索项的实例。
IGNORECASE = 1
评估为条件(带有副作用),而不是块中的语句。这个条件是真实的,并且将导致每一行至少被打印一次。 - mwfearnley