vi편집기는 배우고 익힌는 것이 쉽지 않음에도 불구하고 '최고의 편집기'라는 호칭을 받고 있습니다.
저는 window기반의 편집기에 더 익숙한지라 잘 사용하지는 않지만 꼭 사용을 할 수 밖에 없는 때가 있기 때문에 어느정도는 다룰 수 있습니다.

몇 군데를 걸쳐서 들어가야 하는 녀석들은 FTP기반의 에디터를 사용할 수가 없습니다. 오늘이 그런날 이였습니다. 텍스트 파일을 vi로 열어서 작업을 하다가 문제를 만났습니다.
String Replace.. 물론 '%s/old/new/g'가 문서안에 있는 모든 old를 new로 치환한다는 것은 알고 있습니다. 문제는 문장의 가장 앞과 뒤쪽에 '['과 ']'를 추가해야 하는 작업을 만났다는 것입니다.
문장의 시작은 a-zA-Z로 다양합니다. 물론 문장의 끝도 마찬가지 였습니다.
결국은 vi에서 문장의 시작과 끝을 '어떤것'으로 인식하느냐가 문제였죠..
검색을 했는데 마땅한 답변을 찾지 못해서.. 조금 긴시간을 허비했습니다. 포스트에서 찾지 못하여 이런 저런 다른 방법을 동원하다가 '혹시 정규식?'이라는 생각에 몇가지를 테스트하다가 결국은 만났습니다.

혹여 같은 문제로 고민하시는 분들과..
점점 기억력이 떨어져가는 저를 위하여..

:%s/^/[/g
:%s/$/]/g

문장의 가장 앞은 '^', 문장의 가장 뒤는 '$' 입니다.
찾아보니 몇가지 더 있습니다.
정식으로는 이렇게 표현하는 모양입니다. (긴 설명을 좀 줄였습니다.)

Vi's Pattern Matching Characters

^ : beginning of line
$ : end of line
. : A period matches any charachter. ex) b.d => bed, bid ...
[ : A left square bracket introduces a character set. [1-9] indicates any one of the numerals
* : An asterisk matches zero or more repetitions of the previous single character matching expression
\< : The pair of characters, backslash and less-than, anchors a pattern to the beginning of a word
\> : The pair of characters, backslash and greater-than anchors a pattern to the end of a word
\ : A backslash is used to escape the next character
   -  The UNIX Operating System (Third Edition), Kaare Christian and Susan Richter -

Posted by 달빛변신
,