본문 바로가기
개발/Linux

리눅스 파일 편집 명령어: ex, ed, patch 완벽 가이드

by 낭만기사 2025. 4. 22.
리눅스 파일 편집 명령어: ex, ed, patch 완벽 가이드

리눅스 파일 편집 명령어 완벽 가이드

ex, ed, patch 명령어를 활용한 효율적인 텍스트 파일 편집 방법

1. ex - 행 기반 텍스트 편집기

ex 명령어란?

ex는 vi 편집기의 전신이 되는 행 기반 텍스트 편집기입니다. vi 편집기의 명령 모드에서 사용하는 대부분의 명령어가 ex에서 유래되었습니다. ex는 스크립트 작성이나 배치 처리에 유용하며, 대용량 파일 처리에 효율적입니다.

기본 사용법

ex [옵션] [파일명]

주요 옵션

  • -v: vi 모드로 실행 (기본 ex 모드 대신)
  • -R: 읽기 전용 모드로 파일 열기
  • -c 명령: 파일 열기 전에 실행할 ex 명령 지정

ex 주요 명령어

명령어 설명 예시
:p 현재 행 출력 :3p (3번째 행 출력)
:d 행 삭제 :2,5d (2~5행 삭제)
:s 문자열 치환 :s/old/new/g (현재 행에서 old를 new로 전역 치환)
:w 파일 저장 :w newfile.txt (newfile.txt로 저장)
:q 편집기 종료 :q! (저장하지 않고 강제 종료)

팁: ex 명령어는 vi 편집기에서도 사용할 수 있습니다. vi 편집기에서 ':'를 누르면 ex 모드로 전환됩니다.

2. ed - 표준 텍스트 편집기

ed 명령어란?

ed는 유닉스의 원조 텍스트 편집기로, 가장 오래된 표준 텍스트 편집기입니다. ex와 vi의 기반이 되었으며, 간결하고 가벼운 특징을 가지고 있습니다. 시스템 복구 모드와 같이 제한된 환경에서 유용하게 사용됩니다.

기본 사용법

ed [옵션] [파일명]

주요 옵션

  • -p 문자열: 프롬프트 문자열 설정
  • -s: 진단 메시지 표시 안함
  • -G: 이전 호환 모드로 실행

ed 주요 명령어

명령어 설명 예시
a 현재 행 뒤에 텍스트 추가 (종료는 . 입력) 3a (3번째 행 뒤에 추가)
i 현재 행 앞에 텍스트 삽입 (종료는 . 입력) 5i (5번째 행 앞에 삽입)
d 행 삭제 2,4d (2~4행 삭제)
p 행 출력 1,3p (1~3행 출력)
w 파일 저장 w newfile.txt
q 편집기 종료 q

주의: ed는 기본적으로 명령을 실행한 후에 피드백을 주지 않습니다. 명령 실행 결과를 확인하려면 'p' 명령을 사용해야 합니다.

3. patch - 패치 파일 적용

patch 명령어란?

patch는 diff 명령어로 생성된 패치 파일을 원본 파일에 적용하는 명령어입니다. 소프트웨어 업데이트, 버그 수정, 설정 변경 등을 패치 파일 형태로 배포하고 적용할 때 사용됩니다.

기본 사용법

patch [옵션] [원본파일] [패치파일]

주요 옵션

  • -p숫자: 패치 파일의 경로 레벨 조정 (0이면 전체 경로 유지)
  • -i 파일: 적용할 패치 파일 지정
  • -R: 패치를 역방향으로 적용 (원상복구)
  • -b: 백업 파일 생성 (.orig 확장자)
  • -d 디렉토리: 작업 디렉토리 변경

일반적인 패치 적용 절차

  1. diff 명령어로 패치 파일 생성:
    diff -u oldfile.txt newfile.txt > changes.patch
  2. 패치 파일 적용:
    patch -i changes.patch oldfile.txt
  3. 패치 확인:
    patch -p1 --dry-run < changes.patch
  4. 패치 취소 (필요시):
    patch -R -i changes.patch oldfile.txt

실전 예제: 소스 코드에 패치 적용하기

# 소스 디렉토리로 이동
cd /path/to/source

# 패치 파일 적용 (레벨 1은 상위 디렉토리 제외)
patch -p1 < /path/to/fix-bug.patch

# 문제 발생시 원상복구
patch -R -p1 < /path/to/fix-bug.patch

명령어 비교 및 활용 팁

ex vs ed vs patch 비교

명령어 주요 특징 적합한 사용 사례
ex 행 기반 편집, vi 호환, 스크립팅 가능 대용량 파일 편집, 배치 처리, 자동화 스크립트
ed 경량, 최소한의 기능, 표준 준수 시스템 복구, 제한된 환경, 기본적인 편집
patch 파일 변경 사항 적용, 버전 관리 소프트웨어 업데이트, 협업, 변경 관리

고급 활용 팁

ex를 이용한 배치 편집

# 여러 파일에서 동시에 문자열 치환
for file in *.txt; do
  ex -sc "%s/old/new/g|x" $file
done

ed 스크립트 작성

# ed 스크립트 파일 생성 (script.ed)
a
새로운 내용 추가
.
1,3d
w
q

# 스크립트 실행
ed -s file.txt < script.ed

패치 파일 검증

# 패치 적용 전 테스트
patch --dry-run -p1 < update.patch

# 문제 있는 패치 건너뛰기
patch -p1 -i update.patch --forward --reject-file=rejects

© 2023 리눅스 명령어 가이드. 모든 권리 보유.

더 많은 리눅스 팁과 튜토리얼을 보려면 블로그를 구독하세요.

반응형