반응형
Ⅰ. sed(Stream Editor)란?
Unix 및 Linux 시스템에서 텍스트를 처리하고 변환하는 강력한 명령줄 도구입니다. 파일이나 입력 스트림을 수정하거나 패턴을 검색하고 변환하는 데 자주 사용됩니다. 주로 자동화된 텍스트 처리에 유용하며, 파일을 직접 수정하지 않고 출력으로 결과를 보여주는 방식으로 작동합니다.
Ⅱ. sed(Stream Editor) 기본 구조
sed [옵션] [명령] [파일] [옵션]: 동작을 변경하는 다양한 옵션. [명령]: 수행할 작업(예: 검색 및 치환). [파일]: 입력 파일(생략 시 표준 입력을 처리). |
Ⅲ. sed(Stream Editor) 옵션
옵션명 | 설명 |
-n | 기본 출력을 억제합니다. 특정 명령에 의해 출력이 발생해야만 결과가 표시됩니다. |
-e | 여러 명령을 순서대로 실행합니다. |
-i | 원본 파일을 직접 수정합니다. |
-r | 정규 표현식 확장을 활성화합니다 (기본적으로 일부 시스템에서 필요). |
Ⅳ. sed(Stream Editor) 명령
옵션명 | 설명 |
a\ | 새로운 행을 추가 |
c\ | 현재 행의 내용을 새로운 내용으로 변경 |
i\ | 선택된 행의 윗줄에 텍스트를 삽입 |
n | 입력된 행이 아닌 다음 명렁어에서 처리 |
! | 선택된 행을 제외한 전체 행에 명령어 적용 |
d | 행 삭제 |
p | 전체 데이터 출력 |
s | 문자열 치환 |
g | 문자열/파일내에 모든 패턴들을 검색하고 전체에 대해 치환 |
i | 대소문자에 영향을 안받고 실행 |
p | 치환된 행들만 출력 |
y | 한 문자를 다른 문자로 변환 |
Ⅴ. sed(Stream Editor) 주요 명령
ⅰ. 치환(s) : 문자열이나 패턴을 다른 값으로 치환합니다.
[사용방법] sed '[옵션명][검색할 문자열][변경할 문자열][옵션명]' [대상파일] [예시] [root@feccle test]# sed 's/test/newtest/g' test.sh [변경 전] [root@feccle test]# cat test.sh rkskekfkakqktkdkwkckzkxkckvk test test 1234 test [변경 후] [root@feccle test]# sed 's/test/newtest/g' test.sh rkskekfkakqktkdkwkckzkxkckvk newtest newtest 1234 newtest s : substitute, 약자로 대체하는 의미를 가집니다. /test/: 검색할 패턴. /newtest/: 대체할 텍스트. |
ⅱ. 특정 행 삭제(d)
[사용방법] sed '[특정 행] [명령어] [대상 파일] [예시] [root@feccle test]# sed '3d' test.sh [변경 전] [root@feccle test]# cat test.sh rkskekfkakqktkdkwkckzkxkckvk test test 1234 test [변경 후] [root@feccle test]# sed '3d' test.sh rkskekfkakqktkdkwkckzkxkckvk test 1234 test |
ⅲ. 특정 패턴이 포함된 모든 줄 삭제
[사용방법] sed '[특정 패턴] [명령어] [대상 파일] [예시] [root@feccle test]# sed '/test/d' test.sh [변경 전] [root@feccle test]# cat test.sh rkskekfkakqktkdkwkckzkxkckvk test test 1234 test [변경 후] [root@feccle test]# sed '/test/d' test.sh rkskekfkakqktkdkwkckzkxkckvk 1234 |
ⅳ. 행 삽입(i, insert) : 특정 줄 위에 텍스트를 추가.
[사용방법] sed '[특정 행] [명령어] [대상 파일] [예시] [root@feccle test]# sed '1i\new_Test' test.sh [변경 전] [root@feccle test]# cat test.sh rkskekfkakqktkdkwkckzkxkckvk test test 1234 test [변경 후] [root@feccle test]# sed '1i\new_Test' test.sh new_Test rkskekfkakqktkdkwkckzkxkckvk test test 1234 test |
ⅴ. 행 삽입(a, add) : 특정 줄 아래에 텍스트를 추가.
[사용방법] sed '[특정 행] [명령어] [대상 파일] [예시] [root@feccle test]# sed '1ia\new_Test' test.sh [변경 전] [root@feccle test]# cat test.sh rkskekfkakqktkdkwkckzkxkckvk test test 1234 test [변경 후] [root@feccle test]# sed '1a\new_Test' test.sh rkskekfkakqktkdkwkckzkxkckvk new_Test test test 1234 test |
ⅵ. 파일 수정 : 기본적으로 sed는 원본 파일을 수정하지 않습니다. 원본 파일을 수정하려면 -i 옵션을 사용합니다.
[사용방법] sed [옵션명] '[명령][/검색할 문자열][/변경할 문자열]' [대상 파일] [예시] [root@feccle test]# sed -i 's/test/new_test/' test.sh [변경 전] [root@feccle test]# cat test.sh rkskekfkakqktkdkwkckzkxkckvk test test 1234 test [변경 후] [root@feccle test]# sed -i 's/test/new_test/' test.sh [root@feccle test]# cat test.sh rkskekfkakqktkdkwkckzkxkckvk new_test new_test 1234 new_test |
ⅶ. 로그 파일 분석 : 특정 문자열을 통해 ERROR 가 발생했었는지 확인
[사용방법] sed [옵션명] '[명령][/검색할 문자열]' [대상 파일] [예시] [root@feccle test]# sed -n '/ERROR/p' /var/log/httpd/error_log |
반응형
'시스템(Linux)' 카테고리의 다른 글
Local Repository 설정 변경에 대해 알아보겠습니다. (0) | 2025.01.30 |
---|---|
리눅스 운영체제에서 USB 장치를 마운트하는 방법에 대해 알아보겠습니다. (0) | 2024.12.11 |
renice에 대해 알아보겠습니다. (0) | 2024.11.22 |
xinetd에 대해 알아보겠습니다. (0) | 2024.11.19 |
top 명령어에 대해 알아보겠습니다. (0) | 2024.11.18 |