Grep使用模式

时间:2015-10-01 11:53:56

标签: sed grep

我有一个文件"开始"和"结束"。

Beginn: 123.332
Info: information
Info2: 123
Info: 123
Marks: 123
Mail: 123@123
END

Beginn: 123.332
Info: Some information
Info2: 123
Info: 123
Marks: 123
Mail: 123@123
END

我需要" BEGINN"和"结束"只有"信息:一些信息"和" BEGINN"和"结束"

我试过了: sed -n '/BEGIN/!b;:a;/END/!{$!{N;ba}};{/PATTERN/p}' file

有了这个,我进入一个永无止境的循环。

输出应为:

Beginn: 123.332
Info: Some information
Info2: 123
Info: 123
Marks: 123
Mail: 123@123
END

1 个答案:

答案 0 :(得分:0)

您可以使用其他分隔符替换换行符,然后执行grep,然后将其替换回来。

tr '\n' ';' < file \
    | sed 's;/END;/;END;\n/' \
    | grep ';Info: Some information' \
    | tr ';' '\n'