Linux: EP14 - sed(Stream Editor) 명령어에 대해서 알아보자

admin | | 조회 6


[주요 목차]

sed 명령어란?

sed의 기본 사용법

sed의 고급 기능과 실전 팁


안녕하세요! 오늘은 Linux에서 자주 사용되는 sed(스트림 에디터) 명령어에 대해 알아보려고 해요. 현업에서 텍스트 파일을 다루는 경우가 많기 때문에, sed를 잘 활용하면 작업 효율성을 크게 높일 수 있거든요. 이 글을 읽고 나면, sed의 기본 개념부터 실전에서 유용한 다양한 기능까지 익힐 수 있을 거예요. 특히 문자열 치환, 삭제, 인플레이스 수정 같은 기본적인 사용법과 함께 고급 기능도 알아보니, 실무에서 바로 활용해보세요!


Linux: EP14 -  sed(Stream Editor) 명령어에 대해서 알아보자 - 주요 포인트 1 - LinuxLinux: EP14 - sed(Stream Editor) 명령어에 대해서 알아보자 · 주요 포인트 1

sed 명령어란?

sed는 "스트림 에디터"의 약자로, 주로 입력 스트림에서 텍스트를 변환하거나 수정하는 데 사용되는 강력한 명령어예요. 기본적으로 파일이나 입력된 텍스트에서 특정 패턴을 찾아서 변경할 수 있는 기능을 가지고 있죠. 예를 들어, 파일에서 "Hello"를 "World"로 바꾸고 싶다면, sed를 사용하면 간단하게 처리할 수 있어요.

현업에서 sed를 사용할 때, 다른 리눅스 명령어와 함께 쓰는 경우가 많은데, 예를 들어 grep으로 특정 문자열을 찾고, 그 결과를 sed로 수정하는 경우가 많거든요. 이렇게 조합해서 사용하면 작업 속도를 크게 향상시킬 수 있어요.

sed의 기본 구조는 sed [옵션] 's/패턴/치환할 문자열/' [파일명]입니다. 이때 s는 substitute의 약자로, 패턴에 해당하는 문자열을 치환할 문자열로 바꾼다는 의미죠. 하지만 sed는 단순한 치환 기능 외에도 다양한 플래그와 옵션을 제공하니, 이 부분도 잘 이해하고 넘어가는 것이 중요해요.

Linux: EP14 -  sed(Stream Editor) 명령어에 대해서 알아보자 - 실전 화면 2 - LinuxLinux: EP14 - sed(Stream Editor) 명령어에 대해서 알아보자 · 실전 화면 2

sed의 기본 사용법

sed의 가장 기본적인 사용법부터 알아볼게요. 첫 번째 예제로, 파일에서 "Hello"라는 단어를 "World"로 바꾸는 명령어를 실행해보겠습니다. 이렇게 하면 첫 번째로 발견된 "Hello"만 바뀌게 되고, 이후의 "Hello"는 그대로 남아있거든요.

bash sed 's/Hello/World/' file.txt

이렇게 실행하면 첫 번째 "Hello"는 "World"로 바뀌지만, 두 번째 "Hello"는 여전히 남아있죠. 만약 모든 "Hello"를 "World"로 바꾸고 싶다면, g 플래그를 추가하면 돼요.

bash sed 's/Hello/World/g' file.txt

이 명령어는 파일 내 모든 "Hello"를 "World"로 바꿔줍니다.

그리고 특정 라인을 삭제하는 것도 가능해요. 예를 들어, "delete me"라는 문자열이 포함된 라인을 지우고 싶다면, 다음과 같이 명령어를 사용할 수 있어요.

bash sed '/delete me/d' file.txt

이렇게 하면 "delete me"가 포함된 전체 라인이 삭제됩니다. 이처럼 sed의 기본 사용법을 익히면, 텍스트 파일을 간편하게 수정할 수 있답니다.

Linux: EP14 -  sed(Stream Editor) 명령어에 대해서 알아보자 - 현장 스냅 3 - LinuxLinux: EP14 - sed(Stream Editor) 명령어에 대해서 알아보자 · 현장 스냅 3

sed의 고급 기능과 실전 팁

이제 sed의 고급 기능에 대해 알아볼게요. 인플레이스 수정과 같은 고급 기능은 매우 유용하죠. -i 옵션을 사용하면, 파일을 직접 수정할 수 있어요. 예를 들어 "apple"을 "orange"로 바꾸고 싶다면 다음과 같이 합니다.

bash sed -i 's/apple/orange/' file.txt

이렇게 하면 "file.txt" 파일 내의 "apple"이 "orange"로 직접 바뀌게 되죠.

또한, 특정 패턴을 가진 라인만 출력하는 방법도 있어요. 예를 들어 "apple"이라는 문자열이 포함된 라인만 보고 싶다면 다음과 같이 사용할 수 있어요.

bash sed -n '/apple/p' file.txt

여기서 -n은 기본적으로 모든 내용을 출력하지 않고, p 플래그를 통해 조건에 맞는 라인만 출력하라는 의미죠.

마지막으로, 여러 개의 명령어를 한 번에 실행할 수도 있어요. 예를 들어, "apple"을 "orange"로 바꾸고 "delete me" 라인을 삭제하고 싶다면 다음과 같이 작성할 수 있습니다.

bash sed -e 's/apple/orange/g' -e '/delete me/d' file.txt

이처럼 sed의 다양한 기능을 활용하면, 텍스트 파일을 더 효과적으로 관리할 수 있어요. 실제로 현업에서 많이 쓰이는 기법들이니 꼭 익혀두세요!


[자주 묻는 질문]

sed 명령어의 기본 구조는 무엇인가요?

sed의 기본 구조는 `sed [옵션] 's/패턴/치환할 문자열/' [파일명]`입니다. 이때 s는 substitute의 약자로, 주어진 패턴을 지정한 문자열로 치환하는 역할을 해요. 예를 들어, `sed 's/Hello/World/' file.txt`처럼 사용하면 파일 내 첫 번째 "Hello"가 "World"로 바뀌죠.

sed에서 모든 문자열을 바꾸려면 어떻게 해야 하나요?

모든 문자열을 바꾸려면 `g` 플래그를 추가하면 됩니다. 예를 들어, `sed 's/Hello/World/g' file.txt`를 실행하면 파일 내 모든 "Hello"가 "World"로 바뀌어요. 이처럼 `g` 플래그를 사용하면 해당 패턴이 여러 번 나타나더라도 모두 치환할 수 있습니다.

sed로 특정 라인을 삭제하는 방법은 무엇인가요?

sed에서 특정 라인을 삭제하려면 `/패턴/d` 형식을 사용합니다. 예를 들어, `sed '/delete me/d' file.txt`를 실행하면 "delete me"라는 문자열이 포함된 라인이 삭제됩니다. 이 방법을 이용하면 필요 없는 정보를 간단하게 제거할 수 있어요.

목록
글쓰기
한국 서버호스팅
전체보기 →

댓글 0

jpg/png/gif/webp/zip · 최대 100MB · 10개

리뷰

0
0건의 리뷰
5★
0
4★
0
3★
0
2★
0
1★
0
0/5000
아직 작성된 리뷰가 없습니다. 첫 리뷰를 남겨주세요!