2013-11-21 4 views
0

데이터베이스 유형을 다른 것으로 변환하려고합니다. 그것은 단순한 대체가 아니라 특정 요소로 열 길이를 확장하려고합니다. 예를 들면 다음과 같습니다.GNU sed - 선행 공백 유지

NATIONAL CHARACTER VARYING(50) ----> VARCHAR(60) 

이것은 벨로우즈 명령으로 얻을 수 있지만 선행 공백은 유지되지 않습니다. 문제가 계산의 평가에 필요한 종료 플래그/ge에 있다고 생각합니다.

sed -r 's/(^.*)NATIONAL CHARACTER VARYING\(([0-9]+)\)/ echo \1 VARCHAR"("$(echo "scale=0;\2*1.2\/1"\|bc)")"/ge' 

답변

2

echo ing 중에 역 참조하십시오. 할일 :

sed -r 's/(^.*)NATIONAL CHARACTER VARYING\(([0-9]+)\)/ echo "\1"VARCHAR"("$(echo "scale=0;\2*1.2\/1"\|bc)")"/ge' filename 
+0

고맙습니다. 작동합니다. – martez