sed 질문드려요~ 패턴 문자열부터 특정범위까지만 출력하고 싶어요~
sed 질문드려요~
패턴 문자열을 지정한다음 해당 라인의 끝줄까지만 출력하고 싶은데 어떻게 해야 할지 도저히 모르겠네요...
해당 라인의 끝줄에 ;를 삽입한 다음 패턴 문자열부터 ';' 까지만 출력하려고도 했지만 잘 안되서 질문하게 되었습니다.
출력문 형식은 아래와 같습니다.
*************************** 1. row ***************************;
View: vw_hdd_list;
Create View: CREATE ALGORITHM=UNDEFINED DEFINER=..........생략..........= `wk`.`seqWorker`))))
CREATE 부터 `seqWorker`)))) 까지만 출력하고 싶어요. `seqWorker`))))끝에 ';'을 삽입하여 아래와 같이 만들어 CREATE 부터 ';'까지 뽑아내려 했지만 잘 안되었네요.
*************************** 1. row ***************************;
View: vw_hdd_list;
Create View: CREATE ALGORITHM=UNDEFINED DEFINER=..........생략..........= `wk`.`seqWorker`))));
MySQL에서 View를 뽑아내는 쿼리의 출력문인데 편집하지 않고 바로 이관후 적용하고 싶어서 위와 같은 질문을 하게 되었습니다.
mysql -uroot --password -B -N -e "SELECT CONCAT('SHOW CREATE VIEW ',table_schema,'.',table_name,';') FROM information_schema.views"| mysql -uroot -ppassword -E | sed 's/$/;/g'| sed -n '/CREATE/,/;/p'
이건 제가 실패한 구문이구요 ㅠㅠ
도와주시면 복 받으실꺼에요~
sed
sed 's/^.*\(CREATE.*$\)/\1;/g'
Do you mean something like this ? (I am sorry for using Englsih,
I cannot type Korean letters...)
답글 감사합니다.
답글이 너무 늦었네요. 죄송합니다~^^;; 우선 답글 달아주셔서 감사합니다.
한글로 써도 될지 모르겠네요..^^;;;
sed 's/^.*\(CREATE.*$\)/\1;/g'
알려주신 내용을 풀어보자면 아래와 같이 해석되는게 맞는건가요?
^ : 시작문자
. : 임의의 문자
* : 연속된 모든 문자
\(CREATE : CREATE로 시작하여
. : 아무문자
* : 연속된 모든 문자
$ : 끝
\) : \(\) 괄호안의 내용
/\1 : 매치된 전체줄을 \1로 치환 (\1은 매치된 전체 줄 중에서 괄호안의 문자열
임의의 문자로 시작하는 연속된 문자열에서 CREATE로 시작하는 임의의 문자와 연속된 모든 문자의 끝 내용으로 전체줄을 치환으로 해석하면 될까요??^^;;
댓글 달기