从 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;
我有一个要求,需要根据输入字符串从 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;