unix - 从 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;
推荐阅读
- python - python中套接字程序中的超时函数
- javascript - 我想在 if 语句返回 true 时添加一个点
- node.js - Express - 根据请求提供文件夹
- java - 如何在 Java 中获取深度嵌套的 JSON 对象
- nokia - 如何在诺基亚 8110 4G 中切换开发者模式?
- javascript - 在循环内映射数组
- python - Tensorflow:DLL加载失败:动态链接库(DLL)初始化例程失败
- php - 如何合并2个对象laravel
- android - 使用 RecyclerView 时如何解决 NullPointerException?
- mysql - 为什么使用带注释的 OneToMany 单向映射时数据库 MySql 中的 POJO 属性位置发生了变化?