문제
다음 중 vi 편집기에서 줄의 시작이 linux 일 때 Linux로 치환하는 명령으로 알맞은 것은?
① :% s/^linux/Linux/ ② :% s/<linux/Linux/ ③ :% s/<linux>/Linux/ ④ :% s/$linux/Linux/
정답
1번
해설
정답: 1. vi 치환에서 줄의 시작을 뜻하는 앵커는 "^" 이다. 따라서 줄 머리의 linux 만 Linux 로 바꾸려면 ":% s/^linux/Linux/" 가 맞다.
오답 풀이
- 1번: "^linux" 는 줄 시작의 linux 에만 매칭되어 조건을 정확히 만족하므로 옳다.
- 2번: "<linux" 는 단어 경계(어두) 매칭이라 줄 중간의 단어도 잡혀 "줄의 시작" 조건과 다르다.
- 3번: "<linux>" 는 정확히 단어 linux 에 매칭되지만 역시 줄 시작 한정이 아니다.
- 4번: "$linux" 에서 $ 는 줄 끝 앵커라 위치 의미가 어긋난다(줄 시작이 아님).
보충 개념 정규식 앵커: ^(줄 시작), $(줄 끝), <·>(단어 경계). "줄의 시작"이라는 조건에는 ^ 를 쓴다.