从 AIX 中的文件中提取多行

Extracting a multiple lines from a file in AIX

我有一个要求,需要根据输入字符串从 AIX 服务器中的文件中获取多行。

例如如果我在文件中有以下语句。我想获取从 INSERT 开始的行,并且应该继续获取这些行直到遇到第一个分号。

select date from student ;

insert into abc
select * from abc;

所以我的输出应该如下所示:

insert into abc
select * from abc;

您可以使用 sed 为您完成这项工作

sed '/<pattern1>/,/<pattern2>/!d;/<pattern2>/q'

这里d是删除不在范围内的行,然后q第一次遇到范围末尾就退出。

sed '/insert/,/;/!d;/select/q' test.txt

sed '/insert/,/;/!d;/;/q' test.txt

o/p -

insert into abc
select * from abc;