2012-03-09 86 views
1
ALTER TABLE variable ADD KEY somekey name 

我想从文本文件中删除行,并且下面提到的sed按预期工作。删除符合条件的行

sed '/ADD\ KEY/d' 

但它可能是单词“添加项”可能是别的地方的文本文件,我不想删除了这一行。

只有以“ALTER TABLE”字开头时,我如何删除所有“ADD KEY”行?

回答

1
sed '/ALTER TABLE .* ADD KEY .*/d' FILE 

也应该做这个工作。顺便说一句,你不需要掩盖空白。

1

做:

sed '/^ALTER TABLE/{/ADD\ KEY/d}' 

第一/^ALTER TABLE/检查开始ALTER TABLE线,然后与/ADD\ KEY/d继续进行。如果这是真的。

1

您需要编辑正则表达式匹配的行开始,因为你需要,即:

sed '/^ALTER\ TABLE.*ADD\ KEY/d' 

这是
- 开头的行“ALTER TABLE”
- 其次是0个或多个“任何'
- 后面跟着“ADD KEY”