이후

2014-02-24 2 views
0

내가 변수를 보자 문자열 아래에 포함하고자하는 고통을 찾을
V1 = "이 SELECT * FROM tablename 어디 ID> 1000"지금이후

내가 통해이 삭제 선택하지만 변환합니다 bash/ksh 스크립트.

문자열 "from"이 변수에 복사 된 행의 나머지 부분과 유사하며 아래 라인과 같이 쉽게 삭제 문으로 변환됩니다.
id가 1000보다 큰 테이블에서 삭제하십시오.

누구나 이것에 대해 생각할 수 있습니다.

답변

0

당신은 같이 나오지도 사용할 수 있습니다

v1="select c1,c2 from tablename where id > 1000" 
sed '/select .* from /s/select .* from/delete from/' <<< "$v1" 
delete from tablename where id > 1000 
+0

스크립트를 비난하는 매개 변수로 전달할 때문에 언젠가 몇 열 이름을 선택하는 것입니다 실제로 선택 또한 통과

sed 's/select .* \(from .*\)/delete \1/' sqlfile.txt 
그것은 v1 = "c1, c2 select tablename id> 1000"에서 sed 이후에 tablename id> 1000 – Rajnish

+0

에서 삭제해야합니다. 그러면 'select a, b, c, from'을 'delete'로 바꿉니다. '? – anubhava

+0

우리가 어떻게 바꿀지, 그것은 동적으로 온다. 어떤 시간은 여러번 올 수있다. 몇가지 배수가있을 수있다. tablename에서 select c1을 선택한다. id> 1000 언젠가 id> 1000이되는 tablename에서 c1, c2를 선택한다. id> 1000 – Rajnish

0

방법에 대해 :