2011-04-26 5 views
1

の特定の位置に単語を置き換えます。私はすべての異なるを交換したいのsed/awkは私が与えられ、例えばライン</p> <p>の特定の位置に単語を置き換えるためにしようとしている文

INSERT INTO address (city_id,city) VALUES (1,'Monrovia'); 
INSERT INTO address (city_id,city) VALUES (2,'Brunswick'); 
INSERT INTO address (city_id,city) VALUES (3,'Phenix City'); 

をその結果「デトロイト」との都市は、私はどのように行うことができます

INSERT INTO address (city_id,city) VALUES (1,'Detroit'); 
INSERT INTO address (city_id,city) VALUES (2,'Detroit'); 
INSERT INTO address (city_id,city) VALUES (3,'Detroit'); 

してください、そのSED、AWK、またはvimの中?

ありがとうございます。

答えて

2

最も簡単:VIMで

UPDATE address SET city ='Detroit' 

を追加し、スクリプトを保管してください:sedので

:g/^INSERT INTO address/normal f;F'ci'Detroit 

sed "s/\(VALUES (.*,\)'.*\?'/\1'Detroit'/g" 
+0

Thxあなたはすばやく返信します。最初の解決良い1つ – EeE

3

えっ?それは簡単です:

$ echo "INSERT INTO address (city_id,city) VALUES (1,'Monrovia'); 
> INSERT INTO address (city_id,city) VALUES (2,'Brunswick'); 
> INSERT INTO address (city_id,city) VALUES (3,'Phenix City');" | 
> sed "s/'[^']*'/'Detroit'/g" 
INSERT INTO address (city_id,city) VALUES (1,'Detroit'); 
INSERT INTO address (city_id,city) VALUES (2,'Detroit'); 
INSERT INTO address (city_id,city) VALUES (3,'Detroit'); 

乾杯。キース。

+0

私は文の_'specificポイントを推測していた_実際には理由(サンプルはその理由を示していない)が供給されていた – sehe

+0

あなたのurの返信のためのあなた – EeE

+0

私は、明らかにネイティブの英語話者ではないので、彼が実際に何を言っているのか分からないので、私は最も単純な(最も一般的な)解釈をとった:彼は正規表現についてはまったく知らない。 – corlettk

関連する問題