2011-04-26 10 views
1

내가 줄 예를 들어주어진, AWK 문장

의 특정 위치에있는 단어를 대체하기 위해 노력하고있어 특정 위치에있는 단어를 대체/나오지도 :

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, 또는 정력에?

감사합니다.

답변

2

가장 쉬운 : 나오지도에서

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

:

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

Thx 빠른 답장을 보내 주셔서 감사합니다. 첫 번째 좋은 해결책 – EeE

3

허 정력에

UPDATE address SET city ='Detroit' 

추가 스크립트를 유지? 간단합니다 :

$ 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

내가 문장에서 _ '특정 부분을 추측하고 있었다'는 이유가 있지만 실제로 샘플이 그 이유를 나타내지는 않지만 – sehe

+0

당신은 ur 답장을 위해 – EeE

+0

포스터 분명히 영어 원어민이 아니기 때문에 그가 실제로 말하고있는 것을 전혀 알지 못했다. 그래서 나는 다음과 같은 가장 단순한 (가장 일반적인) 해석을했다. 그는 정규 표현식에 관해서는 단서가 없다. – corlettk