문제
다음 중 vi 편집기에서 줄의 시작이 linux일 때 Linux로 치환하는 명령으로 알맞은 것은?
① :% s/\linux/Linux/ ② :% s/\<linux/Linux/ ③ :% s/^linux/Linux/ ④ :% s/$linux/Linux/
정답
3번
해설
정답: 3. 정규표현식에서 ^ 는 줄의 시작을 의미한다. 따라서 ":% s/^linux/Linux/" 는 줄 맨 앞이 linux 인 경우만 Linux 로 치환한다.
오답 풀이
- 1번: "\linux" 는 줄 시작을 한정하지 못해 줄 어디에 있든 linux 를 치환한다.
- 2번: "<" 는 단어의 시작 경계를 뜻하므로 "줄의 시작"이라는 조건과 다르다.
- 3번: ^ 가 줄 시작을 한정하므로 옳다.
- 4번: $ 는 줄의 끝을 의미하므로 줄 시작 치환과 정반대다.
보충 개념 vi 치환에서 ^ = 줄 시작, $ = 줄 끝, < > = 단어 경계. ":% s/old/new/g" 의 % 는 전체 행, g 는 한 줄 내 모든 일치를 의미한다.