Admin관리자   |    Posting포스트   |    LogOut로그아웃
:+:하늘을닮은호수:+: | Trac | 블로그   |    위치로그   |    태그로그   |    방명록


하늘을 닮은 호수
http://sunsson.iptime.org
Category
전체 (966)
[Standard] (59)
[OS] (119)
[Develope] (77)
[IT Trend] (347)
[Music] (101)
[삶의 질] (262)
Tag List
trac   3GPP   IPTV   svn   2MB   RTP   VoIP   c99   PSS   mysql   awk   memory_leak   H.263   팔봉산   grep   손예진   FLV   ffmpeg   cdn   avc   zenoss   fgrep   추억   AutoConf   zgrep   piclens   SIP   trac_authentication   베토벤 바이러스   포지션  
◀ 이전 페이지  |  1 | 2 | 3 | 4 | 5 |  ... 6 |  다음 페이지 ▶
sed, awk 사용법
Date : 2008/10/23 20:51
출처 : http://blog.daum.net/techtip/12414404

  • sed CMD

    • sed 명령어는 스트림 에디터이다. 역할은 원본 파일에 변형을 주지 않고 단지 출력되는 결과를 변화시켜 보여주는 역할을 한다. 에디터의 일종이기 때문에 vi 편집기와 같은 많은 기능을 제공하고 있다. 또한 sed 명령어는 스크립트 형태로 파일에 저장할 수 있기 때문에 다중 편집이나 쉘 명령행에서 인용부호를 사용하는데 따르는 어려움을 줄여준다.

    • ex)

    • # sed '1,3p' /etc/passwd               -> 1,2,3개의 라인을 한번더 출력

    • # sed -n '1,3p' /etc/passwd            -> 1,2,3 라인까지를 출력

    • # sed '1,3d' /etc/passwd               -> 1,2,3 라인을 제외한 나머지 라인을 출력

    • # sed 's/root/ROOT/' /etc/group        -> root를 찾아서 ROOT로 변경후 출력

    • # sed '1,3s/root/ROOT/g' /etc/group    -> 1,2,3 라인에서 root를 ROOT로 변경후 출력

    • # sed -n '/root/,/adm/p' /etc/passwd   -> root문자에서 adm 문자까지를 출력

    • # sed -n '5,/^nobody/p' /etc/passwd    -> 5번째 라인부터, 라인이 처음으로 nobody로 시작하는 라인까지

    • # sed -n '/[Rr]oot/p' /etc/passwd      -> Root나, root를 모두 포함해서 출력

    • # sed -n '/root/p' /etc/passwd         -> root가 포함된 라인만 출력

    • # sed -n '3p' /etc/passwd              -> 3번째 라인만 출력

    • # sed '3d' /etc/passwd                 -> 3번째 라인만 제외하고 출력

    • # sed 's/root/ROOT/g' /etc/passwd

    • # sed 's/^root/ROOT/g' /etc/passwd 

    • # sed -n 's/^root/ROOT/p' /etc/passwd

    • # sed -n 's/root/ROOT/gp' /etc/passwd

    • # sed 's/[0-9][0-9]$/&.5/' /etc/passwd

    • # sed 's/(∖Mar∖)got/∖1ianne/p' datafile

    • # sed 's/....//' filename              -> 각행의 첫 4글자 삭제

    • # sed 's/....$//' filename             -> 각행의 마지막 4글자 삭제

    • # sed 's#root#ROOT#g' /etc/passwd

    • # sed '/export/s/-/rq/g' /etc/vfstab

      • /etc/vfstab에서 export라는 단어를 찾고, 그라인에 있는 [-] 를 [rq]로 global 하게 변경.

    • # sed '/west/,/east/s/$/**VACA**/' datafile (<==> 1,15s/$/**VACA**/')

      • west부터 시작해서 east까지 찾아서, 각 라인의 끝에다가 **VOCA**를 덧붙여 준다.

    • sed -e '1,5d' -e 's/no/NO/g' /etc/passwd 

      • 5라인을 지우고 ,no를 NO로 변경

    • sed -f script.sed /etc/passwd

      • 미리 만들어놓은 파일을 적용


    • File 다루기

      • 파일 내용 필터링 하기

        • 1. 파일의 첫번째 라인 지우기

          • # sed '1d' filename

        • 2. 파일의 마지막 라인 지우기

          • # sed '$d' filename

        • 3. 파일의 특정한 라인 지우기

          • # sed '3,5d' filename

          • # sed '1,0d' filename

          • # sed '10,$d' filename

          • # sed '/root/,/other/d' filename

          • # sed '/root/d' filename

      • 파일 내용 치환 하기

        • 1. 파일의 첫라인에 새로운 내용 추가

          • # sed '1,3s/^/HIS:    /g' filename   -> 1,2,3의 첫번째 라인에 HIS를 추가

          • # sed '10,$s'/^/HIS:  /g' filename

          • # sed '10,20s/%/     /g' filename    -> 공백만큼 들여쓰기

        • 2. 파일의 끝라인에 새로운 내용 추가

          • # sed '1,3s/$/ 

        • 3. 파일의 특정한 라인에 새로운 내용 추가

          • # sed '/export/s/-/rq/g/; /etc/vfstab

        • 4. 파일의 주석 모두 지우기

          • # sed -e '/#/d' filename

        • 5. 파일의 공백 지우기

          • # sed -e '/^$/d' filename

    • 옵션

      옵션

      설명

      -e

      다중 편집을 가능하게 한다.

      -f

      sed 스크립트 파일 지정에 사용된다.

      -n

      기본 출력을 생략한다.



    • 메타문자

      메타문자

      기능

      사용예