예제가 포함된 Linux의 sed 명령

Linux의 sed 명령은 입력 스트림(파일 또는 파이프라인의 입력)에서 기본 텍스트 변환을 수행할 수 있는 강력한 스트림 편집기입니다. 파일 내의 텍스트 검색, 찾기 및 바꾸기, 삽입 및 삭제에 널리 사용됩니다. 간단한 텍스트 편집기와 달리 sed는 파이프라인에서 데이터를 처리하며 특히 쉘 스크립트에서 텍스트 조작을 자동화하는 데 유용합니다.

sed의 주요 기능은 다음과 같습니다.

  • 정규식을 사용하여 파일 내의 텍스트를 대체합니다.
  • 특정 패턴을 기반으로 선을 삭제합니다.
  • 특정 줄에 텍스트를 삽입하거나 추가합니다.
  • 복잡한 패턴을 기반으로 텍스트를 변환하거나 변환합니다.

이 가이드에서는 Linux에서 sed 명령을 실제로 사용하는 방법을 보여주는 예제를 제공하고 다양한 텍스트 처리 작업에 이 명령을 활용하는 방법을 보여줍니다.

Sed 명령의 주요 구문 및 옵션

예제를 살펴보기 전에 sed 명령의 기본 구문을 이해하는 것이 중요합니다.

sed [OPTION]... {script-only-if-no-other-script} [input-file]...

다음은 일반적으로 사용되는 몇 가지 옵션입니다.

  • -e: 여러 명령을 사용할 수 있습니다.
  • -n: 모든 줄을 인쇄할 때 기본 동작을 억제합니다.
  • -i: 파일을 제자리에서 편집합니다(원본 파일을 수정하므로 주의하세요).

Linux에서 Sed 명령의 기본 예

기본 텍스트 대체

sed의 가장 일반적인 용도 중 하나는 텍스트를 바꾸는 것입니다.

echo "Welcome to Linux" | sed 's/Linux/Unix/'

산출:

Welcome to Unix

전역 대체

기본적으로 sed는 줄의 첫 번째 발생을 바꿉니다. 모든 발생을 바꾸려면 'g' 플래그를 사용합니다.

echo "Apples are better than apples" | sed 's/apples/oranges/g'

산출:

Apples are better than oranges

라인 삭제

sed는 특정 패턴에 따라 줄을 제거할 수도 있습니다.

echo -e "apple\norange\nbanana" | sed '/orange/d'

산출:

apple
banana

텍스트 삽입 및 추가

패턴 일치 전후에 새 텍스트 줄을 도입할 수 있습니다.

echo "Hello" | sed 'i\Good Morning'

산출:

Good Morning
Hello

텍스트 대소문자 변경

sed를 사용하면 y 함수를 사용하여 텍스트 케이스를 조작할 수 있습니다. 소문자를 대문자로 변환하는 예를 살펴보겠습니다.

echo "hello world" | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'

산출:

HELLO WORLD

Linux에서 Sed 명령의 고급 사용법

다중 패턴 텍스트 대체

여러 패턴의 경우 -e를 사용하여 다양한 대체 명령을 연결할 수 있습니다.

echo "Welcome to Linux. I love Linux." | sed -e 's/Linux/Unix/' -e 's/love/adore/'

산출:

Welcome to Unix. I adore Linux.

조건부 텍스트 교체

sed를 사용하면 주소를 사용하여 특정 조건에 따라 텍스트를 바꾸는 것이 가능합니다.

echo -e "apple\nbanana\ncherry" | sed '/banana/s/$/ - favorite fruit/'

산출:

apple
banana - favorite fruit
cherry

정규 표현식과 함께 Sed 사용

정규식의 강력한 기능을 활용하여 복잡한 패턴을 일치시키세요.

echo "Price is $100" | sed 's/$[0-9]*/& (USD)/'

산출:

Price is $100 (USD)

복잡한 교체에 대한 역참조

역참조를 활용하면 일치하는 패턴의 일부를 다시 참조할 수 있습니다.

echo "The white cat and black dog" | sed 's/\(white\|black\) \(cat\|dog\)/\2 \1/'

산출:

The cat white and dog black

-i 옵션을 사용하여 내부 편집

sed의 강력한 기능 중 하나는 파일을 직접 편집하는 기능입니다. 이는 -i 옵션을 사용하여 수행할 수 있지만 직접 수정하기 전에 항상 원본 파일을 백업하십시오.

echo "Original text" > temp.txt
sed -i 's/Original/Modified/' temp.txt
cat temp.txt

산출:

Modified text

결론

sed 명령을 이해하고 익히면 Linux에서 텍스트 파일을 조작하고 처리하는 능력이 크게 향상될 수 있습니다. 제공된 예제를 연습함으로써 일반적인 텍스트 처리 작업을 효율적으로 처리하고, 반복적인 편집 작업을 자동화하고, sed를 스크립팅 작업 흐름에 통합하는 방법을 배울 수 있습니다. 다양한 sed 옵션과 명령을 정기적으로 실험하면 지식이 깊어지고 잠재력을 최대한 활용할 수 있습니다. sed가 Linux 텍스트 처리 작업에 제공하는 다양성과 성능을 즐겨보세요.

Joshua James

코멘트를 남겨주세요