下面的sed适用于命令行并执行以下操作
sed -n '/CREATE EXTERNAL/,/^[)]/{/^[()]/d;p}' ddl.txt
打印包含CREATE EXTERNAL和()的行之间的所有行,除了那些以文件ddl.txt中的(或)开头的行
您可能会注意到,行(或)的异常作为嵌入式地址处理,遇到匹配的行将被删除。
我已将所有尝试放入可以使用sed -f运行的文件中的尝试都失败了。如果有人能告诉我正确的语法,我将不胜感激。
以下是一些测试数据
CREATE EXTERNAL TABLE foo.bar
(
mykey INT,
mydata VARCHAR(20),
lastfield VARCHAR(20)
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\137'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
应该产生
CREATE EXTERNAL TABLE foo.bar
mykey INT,
mydata VARCHAR(20),
lastfield VARCHAR(20)