Linux ETC

SED 명령어 사용법

2012.07.20 08:14

호스트웨이 조회 수:16955

 SED 명령어 사용법


ed명령어와 grep명령어 기능의 일부를 합친 것이 sed(stream editor)명령어입니다

이 sed 명령어가 ed보다 좋은 점은 라인들을 하나씩 읽고 , 수정하고, 출력하기 때문에
기억장치 안의 버퍼를 사용하지 않는다는 점으로 버퍼를 사용하지 않으면 화일의 크기에
제한 없이 작업을 할 수 있습니다.


      일상적인 sed 명령
    ---------------------------------------------------------------------------------------
     a          다음 라인(들)을 적용될 라인들에 부가한다  (라인뒤)
     c          적용될 라인들을 다음 라인(들)로 변경한다  (라인 대체)
     d           적용될 라인들을 삭제
     g           단지 첫번째의 것만이 아니라 라인의 모든 부합 패턴 대체가 적용 되게 함
     i          다음 라인(들)을 적용될 라인들 위에 삽입 (라인앞)
     p           - n 옵션하에 있을지라도, 라인을 프린트
     q           명시된 라인에 도달할 때 중지함
     r filename  filename을 판독함
     s/old/new/  "old"를 "new"로 대체함
     =           라인 번호를 프린트함
     !command    라인이 선택되지 않는 경우 command를 적용함.
    --------------------------------------------------------------------------------------


예)
     # sed "s/hello/goodbye" in.txt

  위의 명령어는 in.txt이라는 화일에 있는 각 라인에서 첫번째 등장하는 hello라는 문자열을
  goodbye로 교체한 후 그 라인을 표준 출력에 출력하는 예


     # sed "/hello/d" in.file

  위 의미는 "hello라는 문자열을 포함하고 있는 라인을 찾아 그 라인을 삭제하라"는 명령임.


     # sed "3,7s/hello//" in.file

  위의 명령어는 in.file이라는 화일의 라인3에서 7까지만을 대상으로 첫번째 hello를 삭제하고
  화일의 그 외의 부분은 변경시키지 않음.