리눅스 파일 내용에서 동일한 내용을 일괄 변경해주고 싶을 때 사용한다.
:%s/변경시킬문자/변경될문자/g
예를 들어, vi 편집기 사용시 '/sing/'이라는 문자를 '/song/'으로 변경해주고 싶을때
:%s/\/sing\//\/song\//g
라고 작성해주면 된다.
vi 텍스트 치환 명령어 설명 ㅡ 접은글
리눅스 'vi' 편집기를 사용한 명령어로 분석해 보겠습니다.
우선 ' :%s/\/sing\//\/song\//g' 명령어는 문서 전체에서 '/sing/'을 '/song/'으로 변경하는 명령어입니다. 각각의 요소를 자세히 설명하겠습니다.
':%s' : 문서 전체에서 문자열 치환을 수행합니다.
- ':' : 명령 모드를 의미합니다.
- '%' : 문서 전체를 대상으로 한다는 의미입니다.
- 's' : 'substitute'의 약자로, 문자열을 치환하라는 의미입니다.
'/변경시킬문자/변경될문자/g'의 형식을 따릅니다.
- '/' : 구분자로, 변경할 문자열과 변경될 문자열을 나눕니다.
- '\/sing\/' : '/sing/'을 의미하며 /sing/ 이라는 문자열을 찾습니다
- '\' : '/'를 이스케이프(escape)하여 일반 문자로 인식되게 합니다.
예를 들어, '/sing/' 을 변경 대상으로 지정하려면 '/'를 문자로 인식시키기 위해 '\/'로 작성해야 합니다.
'\/song\/' : '/song/'을 의미하며 마찬가지로 '/'를 문자로 인식시키기 위해 '\'를 사용합니다.
'g' : 'global'의 약자로 한 줄에서 해당 문자열을 모두 변경하라는 의미입니다. 만약 'g'가 없다면, 한 줄에서 첫 번째로 일치하는 문자열만 변경됩니다. 즉, 각 줄에서 모든 해당 문자열을 변경합니다.
번외)
- 몇 번째 줄부터 몇 번째 줄까지만도 변경해 줄 수 있습니다.
예를 들어, 첫 번째 줄부터 10번째 줄까지 모든 foo를 bar로 변경하는 명령어는 다음과 같습니다.
:1,10s/foo/bar/g
'개인 공부 > 정보 보관함' 카테고리의 다른 글
[LINUX]백엔드 개발자가 자주 사용하는 리눅스 명령어 (1) | 2024.06.27 |
---|---|
[LINUX]vi 편집기 & 명령어 정리 (0) | 2024.06.27 |
[LINUX] 포트 오픈 확인 (0) | 2024.06.19 |
[Network] 라우팅(Routing) (1) | 2024.06.03 |
윈도우10 하드디스크(HDD) 포맷하는 방법 (1) | 2024.04.19 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!