개요
ex는 Vi 편집기의 라인 기반 명령 모드입니다. 이는 파일의 내용을 한 줄씩 처리하거나, 정규 표현식을 사용하여 복잡한 텍스트 변환을 수행하는 데 매우 유용합니다. 특히 셸 스크립트 내에서 파일을 자동으로 수정할 때 강력한 도구로 활용됩니다.
주요 특징
- 라인 기반 텍스트 편집
- 스크립트 및 자동화된 작업에 최적화
- 강력한 정규 표현식 지원
- Vi/Vim과 동일한 명령어 집합 사용
- 비대화형 모드 지원
주요 옵션
ex는 주로 파일 내에서 직접 명령을 실행하지만, 시작 시 특정 동작을 제어하는 몇 가지 명령줄 옵션을 제공합니다.
시작 및 모드 옵션
생성된 명령어:
명령어를 조합해 보세요.
설명:
`ex` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
ex는 주로 스크립트 내에서 특정 작업을 수행하거나, vi 편집기 내부에서 `:ex` 명령으로 전환하여 사용됩니다.
파일 열기 및 내용 출력
ex -s file.txt <<EOF
%p
q!
EOF
파일을 ex 모드로 열고, 모든 라인을 출력한 후 종료합니다.
파일 내 문자열 치환 및 저장
ex -s -c '%s/old_string/new_string/g | wq' file.txt
file.txt 파일 내의 'old_string'을 'new_string'으로 모두 치환하고 저장 후 종료합니다.
여러 파일에서 문자열 일괄 치환
for f in *.txt; do ex -s -c '%s/error/warning/g | wq' "$f"; done
현재 디렉토리의 모든 .txt 파일에서 'error'를 'warning'으로 치환합니다.
특정 라인 삭제
ex -s -c '5d | wq' file.txt
file.txt 파일에서 5번째 라인을 삭제하고 저장합니다.
팁 & 주의사항
ex는 대화형 사용보다는 스크립트나 자동화된 작업에 더 적합하며, 효율적인 텍스트 처리를 위해 몇 가지 팁을 알아두면 좋습니다.
주요 팁
- 비대화형 스크립트에서는 항상 `-s` (silent) 옵션을 사용하여 불필요한 메시지를 억제하세요.
- 명령어는 `vi`의 명령 모드와 동일하며, `:wq`로 저장 후 종료, `:q!`로 저장하지 않고 종료할 수 있습니다.
- 정규 표현식은 `sed`와 유사하게 강력하게 활용할 수 있습니다. `%s/pattern/replacement/g`는 파일 전체에서 패턴을 치환하는 데 사용됩니다.
- ex는 대부분의 리눅스 시스템에 기본적으로 설치된 `vi` 또는 `vim` 패키지의 일부입니다.
- 파이프(`|`)를 사용하여 여러 ex 명령을 한 줄에 연결할 수 있습니다.