首页 > 解决方案 > 从 AIX 中的文件中提取多行

问题描述

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

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

select date from student ;

insert into abc
select * from abc;

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

insert into abc
select * from abc;

标签: unixaix

解决方案


你可以用来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;

推荐阅读