TECH / / 2023. 2. 14. 17:48

sed 명령어 사용법 | 치환, 옵션, 변수 - 최신버전

반응형

LInux OS 관리자라면 반드시 알아야할 명령어중 대표적인 sed 명령어 사용법에 대해서 알아보겠습니다. 로그 파일 파싱이나 분석히 많이 사용되며, 다양한 리눅스 스크립트 개발시에도 많이 사용됩니다.

 

 

sed 명령어 사용법

 

 

sed 명령어

 

리눅스에서 sed 명령어는 입력 스트림(다른 명령어의 파일 또는 출력)에서 텍스트 변환을 수행하는 데 사용할 수 있는 스트림 편집기이다. SED의 일반적인 용도로는 텍스트 찾기 및 바꾸기, 줄 삭제, 텍스트 삽입 또는 추가, 치환 등이 있습니다.

 

  • 텍스트 찾기 및 바꾸기 : 's/old-text/new-text/g' sample-file
  • 특정 패턴이 포함된 줄 삭제 : sed '/pattern/d' sample-file
  • 특정 줄 앞에 텍스트 삽입 : sed '2i\new-text' sample-file
  • 특정 행 뒤에 텍스트 추가 : sed '2a\new-text' sample-file
  • 특정 행의 텍스트 바꾸기(치환) : sed '2s/old-text/new-text/g' sample-file

 

이러한 명령은 정규식을 사용하여 텍스트의 패턴을 일치시키고 결과 출력을 새 파일로 리디렉션하거나 터미널에 표시할 수 있습니다. SED 및 옵션에 대한 자세한 내용은 단말기에서 Maned를 실행하여 수동 페이지를 참조할 수 있습니다.

 

 

sed 명령어 사용법 예제

 

아래 내용은 Linux에서 sed 명령을 사용하여 파일의 텍스트를 바꿀 수 있는 방법에 대한 예제 입니다. 
sample.txt 라는 이름의 파일을 이용하여 예시를 든것입니다.

The quick brown fox jumps over the Cute dog.
The lazy dog was not amused.

 

Linux 터미널에서 다음 명령을 실행하여 이 파일에서 "Cute"라는 단어를 "Pretty"로 바꾸는 데 사용할 수 있습니다


sed 's/Cute/Pretty/g' sample.txt

s 명령은 하나의 패턴을 다른 패턴으로 대체(치환) 하도록 지시하고, 마지막의 g는 이것이 전역적으로 (즉, 각 라인에서 패턴의 모든 발생에 대해) 수행되어야 한다고 지정하는 것입니다. 이 명령의 실행 결과 출력은 다음과 같습니다


The quick brown fox jumps over the Pretty dog.
The sleepy dog was not amused.


이 명령은 원본 파일을 수정하지 않고 터미널에 수정된 텍스트를 표시합니다. 원본 파일에 변경 내용을 저장하려면 -i 옵션(예: sed -i's/lazy/sleepy/g' example.txt)을 사용할 수 있습니다. -i 옵션을 사용하면 제자리에 있는 파일이 수정되고 변경 내용을 쉽게 취소할 수 없으므로 주의하십시오.

 

 

sed 명령어 ETC

 

sed -n  '/Volume1 /,/~/p' cluster15.html | sed -n '10p'
sed -n  '/Volume1 /,/~/p' cluster15.html | sed -n '10p' | awk -F ">" '{print $3}' | awk -F "<" '{print $1}'



cat 070405.dat | sed -n '4,/^$/p'        전체
cat 070405.dat | sed -n '9,/^$/p'        일별전체
cat 070405.dat | sed -n '32,/^$/p'       정회원 로그인수
cat 070405.dat | sed -n '55,/^$/p'       정회원 남녀  로그인수
cat 070405.dat | sed -n '78,/^$/p'       준회원 로그인수
cat 070405.dat | sed -n '102/^$/p'       준회원 남녀 로그인수 

sed -i 's/SEC/Security/' $DIR/report/ivre-zone-$MONTH.txt

 

팁 : 리눅스 ^M 개행문자 제거 방법

 

vi:

:%s/^M//g

 

sed :
sed 's/^M//g' <% file %> >  <% new-file %>

 

이와 같이 sed 명령어는 파일 단위 작업시 매우 유용하게 이용할수있습니다. sed 스트림에디터는 책으로 한권 나올정도로 옵션이나 예제가 방대합니다. 다양한 옵션은 리눅스 터미널에서 man sed 라고 입력하시면 아래와 같이 상세하게 확인할수 있습니다. 

 

 

DESCRIPTION
       Sed  is  a stream editor.  A stream editor is used to perform basic text transformations on an input stream
       (a file or input from a pipeline).  While in some ways similar to an editor which  permits  scripted  edits
       (such as ed), sed works by making only one pass over the input(s), and is consequently more efficient.  But
       it is sed's ability to filter text in a pipeline which particularly distinguishes it from  other  types  of
       editors.

       -n, --quiet, --silent

              suppress automatic printing of pattern space

       --debug

              annotate program execution

       -e script, --expression=script

              add the script to the commands to be executed

       -f script-file, --file=script-file

              add the contents of script-file to the commands to be executed

       --follow-symlinks

              follow symlinks when processing in place

       -i[SUFFIX], --in-place[=SUFFIX]

              edit files in place (makes backup if SUFFIX supplied)

       -l N, --line-length=N

              specify the desired line-wrap length for the `l' command

       --posix

              disable all GNU extensions.

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유