본문 바로가기
서버 운영/Linux

리눅스 sed 명령어 - 문자열 치환, 특정 문자열 삭제

by Infralabs 2024. 8. 13.
반응형

리눅스 서버에서 문자열 치환, 문자열 삭제하는데 사용하는 sed 명령어에 대해 설명하고자 합니다. 

 

sed 명령어는 입력된 텍스트를 패턴에 맞게 변형하거나 편집하여 결과를 출력하는 명령어입니다.
파일을 수정하거나, 파이프라인을 통해 입력된 스트림을 편집할 때 사용합니다. 

 

1. 텍스트 치환

sed 의 가장 기본적인 기능은 특정 패턴을 다른 문자열로 치환하는 기능입니다. 

  • 's/{검색할 문자열}/{변경할 문자열}/' : {검색할 문자열}을 {변경할 문자열}로 변경합니다. 
  • 's/{검색할 문자열}/{변경할 문자열}/g' : 전체 텍스트에서 {검색할 문자열} 모두를 {변경할 문자열}로 변경합니다. 

명령어 실행 결과

# echo "Hello World" | sed 's/World/Test/'

Hello Test

 

 

2. 파일에서 직접 텍스트 치환하기

  • -i 옵션을 사용하여 파일을 직접 수정할 수 있습니다. 

file.txt 라는 파일이 다음과 같을 경우, sed -i 옵션을 통해 해당 파일의 내용을 수정해보겠습니다. 

# cat file.txt
old 
new
old

명령어 실행 결과

# sed -i 's/old/new/g' file.txt

# cat file.txt
new
new
new


3. 파일에서 특정 문자열이 포함된 줄 삭제하기

sed 의 d 명령과 정규표현식을 통해 파일에서 특정 문자열이 포함된 줄을 삭제할 수 있습니다. 

  • 's/{검색할 문자열}/d' : {검색할 문자열}이 포함된 줄을 삭제합니다.
  • 's/^{검색할 문자열}/d' : {검색할 문자열}로 시작되는 줄을 삭제합니다. 

file.txt 라는 파일이 다음과 같을 경우, sed를 통해 해당 파일의 내용을 수정해보겠습니다. 

# cat file.txt
This is test message
new new old

 

명령어 실행 결과

# sed -i '/new/d' file.txt

# cat file.txt
This is test message
# sed -i '/^This/d' file.txt

# cat file.txt
old new new

 

반응형