使用awk或sed打印包含2个以上模式的段落

时间:2016-07-28 10:44:06

标签: awk sed

我想只打印以&#34开头的段落;选择"并以";"结尾,但应包含" IN cccc"例如,如果我有以下代码

select aaaa
bbbb
IN cccc
;
select dddd
eeeee
IN ffff
;
select rrrr
eeeee
IN cccc
;

结果就像

select aaaa
bbbb
IN cccc
;
select rrrr
eeeee
IN cccc
;

所以这里使用了awk '/^select*/,/^;/{if ($0 ~ /^IN cccc/) ; print}' inputfile的awk 但我得到了我的文件的全部内容

1 个答案:

答案 0 :(得分:4)

您可以试试awk

awk 'BEGIN{ORS=RS=";"} /^[[:space:]]*select.*IN cccc/' file

下面,

  • ORS - 输出记录分隔符
  • RS - 输入记录分隔符