Linux 텍스트 명령어 편집기
1 2 3 4 5 |
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//' 192.168.1.10 |
sed
(stream editor)는 텍스트 파일이나 텍스트 스트림에서 텍스트를 편집할 수 있는 강력한 도구입니다. sed
는 특히 Unix 계열 운영체제에서 널리 사용되며, 정규 표현식을 사용하여 텍스트를 검색하고 대체하거나 파일에서 특정 행을 추출하거나 삭제하는 데 매우 유용합니다.
기본 구조
sed
명령어는 다음과 같은 기본 구조를 가지고 있습니다:
1 2 3 |
sed [옵션] 'script' 파일 |
- 옵션:
sed
에 대한 다양한 명령 옵션입니다. - script:
sed
스크립트 또는 명령입니다. 큰 따옴표나 작은 따옴표로 감싸서 사용합니다. - 파일: 텍스트 파일의 이름입니다.
주요 기능 및 예제
- 기본 사용법
sed
의 기본 사용법은 텍스트를 검색하고 대체하는 것입니다.
1 2 3 |
sed 's/old/new/' 파일.txt |
위 명령어는 파일.txt에서 첫 번째로 등장하는 “old”를 “new”로 대체합니다.
텍스트 대체
- 파일 내 모든 “old”를 “new”로 대체하려면
g
(global) 플래그를 사용합니다.
1 2 3 |
sed 's/old/new/g' 파일.txt |
파일 내용 출력
-n
옵션과p
플래그를 사용하여 특정 패턴이 포함된 행만 출력할 수 있습니다.
1 2 3 |
sed -n '/pattern/p' 파일.txt |
행 삭제
- 특정 패턴이 포함된 행을 삭제할 수 있습니다.
1 2 3 |
sed '/pattern/d' 파일.txt |
특정 행 대체
- 특정 행 번호에서 텍스트를 대체할 수 있습니다.
1 2 3 |
sed '3s/old/new/' 파일.txt |
위 명령어는 세 번째 행에서 “old”를 “new”로 대체합니다.
파일을 직접 편집
-i
옵션을 사용하여 파일을 직접 편집할 수 있습니다.
1 2 3 |
sed -i 's/old/new/g' 파일.txt |
여러 명령어 실행
- 여러 명령어를 순차적으로 실행하려면
-e
옵션을 사용합니다.
1 2 3 |
sed -e 's/old/new/g' -e '/pattern/d' 파일.txt |
1 2 3 4 5 6 |
고급 사용 예제 정규 표현식 사용 sed는 강력한 정규 표현식을 지원합니다. |
1 2 3 |
sed -r 's/([0-9]{3})-([0-9]{4})/\1 \2/' 파일.txt |
위 명령어는 “123-4567” 형식의 문자열을 “123 4567″로 변환합니다.
텍스트 추가
- 특정 행 앞이나 뒤에 텍스트를 추가할 수 있습니다.
1 2 3 4 |
sed '2a\This is a new line.' 파일.txt # 두 번째 행 뒤에 추가 sed '2i\This is a new line.' 파일.txt # 두 번째 행 앞에 추가 |
범위 지정
- 행 범위를 지정하여 특정 범위 내에서만 명령을 실행할 수 있습니다.
1 2 3 |
sed '1,5s/old/new/' 파일.txt # 첫 번째 행부터 다섯 번째 행까지 "old"를 "new"로 대체 |
요약
sed
는 텍스트 편집을 자동화하는 데 매우 강력하고 유연한 도구입니다. 텍스트 검색, 대체, 삭제, 추가 등의 작업을 스크립트를 통해 수행할 수 있어 시스템 관리 및 데이터 처리 작업에서 매우 유용합니다. sed
명령어와 정규 표현식의 조합을 통해 복잡한 텍스트 변환 작업도 효율적으로 처리할 수 있습니다.