쉘스크립트

고요한하늘 2015. 5. 20. 13:32

법정교육왜 하는가


파일에서 앞에 공백이 없는 "왜"를 찾기 위해서는 
/[^ ]왜 
로 찾을수 있다.
그런데 이런 패턴을 찾아서 앞에 오는 패턴과 뒤에 오는 패턴 "왜" 사이에 일괄로 공백을 넣고자 할때
다음과 같이 역참조(backreference)를 사용하여 처리할수 있다.
우선 앞에 있는  [^ ]를 하나의 그룹으로 만들고
위에 오는 "왜"를 또 하나의 그룹 즉 두개의 그룹으로 만든다.
vim에서 그룹을 만들때는 ()를 사용하는데 일반적으로 패턴과의 구분을 위해 역슬래시(\)를 붙여준다.

그런다음 앞에서 부터 그룹을 가르킬때는 \1, \2로 순서대로 지정할수 있다.

결과적으로 다음과 같이 하면 앞에 공백이 없는 "왜"에 대해 앞에 오는 글자와 "왜 사이에 공백을 추가할수 있다

%s/\([^ ]\)\(왜\)/\1 \2/g