【发布时间】:2015-09-11 20:03:05
【问题描述】:
我正在尝试使用 sed 解析一个 sql 文件。我需要根据下面的示例提取位于一组行(field1 到 field 3)之间的内容。这是一个例子
Create table xyz
(
field1 varchar(255),
field2 varchar(255),
field3 int
);
Create table 123
(
fieldx varchar(255),
fieldy varchar(255),
fieldz int
);
如何仅使用 sed 提取属于 xyz 表的字段线?
谢谢
【问题讨论】:
-
找到所有非空白缩进行就足够了吗?如果不是,您要查找的“行组”的标准是什么:以
(开头并以)结尾? -
sed 可能不会成为你的朋友。我想说你几乎需要用某种高级语言编写一个程序,或者在一个好的文本编辑器中编写一个宏来完成我认为你所追求的事情。
-
是可以的,但是会很复杂,会很挑剔,很脆。如果文件中仅包含创建表语句,并且主键和约束/索引等不在表定义中,并且如果计算列的公式不在表定义中,则这是可行的,否则我会跑并隐藏。