【发布时间】:2012-03-09 11:54:01
【问题描述】:
ALTER TABLE variable ADD KEY somekey name
我想从文本文件中删除该行,下面提到的 sed 正在按预期工作。
sed '/ADD\ KEY/d'
但“ADD KEY”一词可能位于文本文件中的其他位置,我不想删除该行。
如何删除所有以“ALTER TABLE”开头的“ADD KEY”行?
【问题讨论】:
ALTER TABLE variable ADD KEY somekey name
我想从文本文件中删除该行,下面提到的 sed 正在按预期工作。
sed '/ADD\ KEY/d'
但“ADD KEY”一词可能位于文本文件中的其他位置,我不想删除该行。
如何删除所有以“ALTER TABLE”开头的“ADD KEY”行?
【问题讨论】:
sed '/ALTER TABLE .* ADD KEY .*/d' FILE
也应该完成这项工作。顺便说一句,你不需要屏蔽空白。
【讨论】:
做:
sed '/^ALTER TABLE/{/ADD\ KEY/d}'
第一个 /^ALTER TABLE/ 检查以 ALTER TABLE 开头的行,如果是,则继续使用 /ADD\ KEY/d。
【讨论】:
您需要编辑正则表达式以匹配您需要的开头的行,即:
sed '/^ALTER\ TABLE.*ADD\ KEY/d'
这是
- 以“ALTER TABLE”开头的行
- 后跟 0 个或多个“任何东西”
- 后跟“添加密钥”
【讨论】: