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

テキストファイルから行を削除したいと考えています。以下に述べるsedが期待どおりに動作しています。条件付きの行を削除する

sed '/ADD\ KEY/d' 

しかし、 "ADD KEY"という単語がテキストファイルのどこかにある可能性があり、その行を削除したくない可能性があります。

"ADD KEY"行が "ALTER TABLE"という単語で始まる場合にのみ、どのようにすべて削除するのですか? ALTER TABLEで始まる行を

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

最初/^ALTER TABLE/チェックをし、それが本当ならば、/ADD\ KEY/dして進める:

答えて

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

も同様に行う必要があります。ところで、空白を隠す必要はありません。

1

を行います。

1

あなたはつまり、あなたが必要として始まる行にマッチする正規表現を編集する必要があります。

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


である - 0以上の「続く - ライン
「ALTER TABLE」が始まりますanything '
- 「ADD KEY」

関連する問題