4. 몇가지 예제 스크립트들

GNU SED 와 함께 배포되는 dc.sed라는 놀라운 스크립트가 있으나, 다음 예제를 한번 보십시요.

예제용 데이타
        wolf@zizik.net]$ cat /etc/hosts
        231.101.9.11    ulsan           울산  101
        231.102.9.11    kangbyun        강변  102
        231.104.9.11    world           월드  104
        231.107.9.11    seohyun         서현  107
        231.108.9.11    chungju         청주  108
        231.109.9.11    kuri            구리  109
        231.111.9.11    bupyung         부평  111
        231.112.9.11    juyeup          주엽  112
        231.113.9.11    daejun          대전  113
        231.114.9.11    yeonsu          연수  114
        231.115.9.11    chunan          천안  115
        231.116.9.11    sangmu          상무  116
        231.117.9.11    saha            사하  117
        231.118.9.11    daegu           대구  118
        3.7.23.107      kwanak          관악  119
        3.7.23.232      pusan           부산  120
        3.1.2.229       ilsan           일산  121
쉬운 예제.

["산"이 들어가는 호스트만 찾아서 ip address 뽑아내기]

        wolf@zizik.net]$ sed -n -e '/산/ s/\([0-9.]*\) *[a-z]* *\([^ ]*\).*/\2 =====> \1/p;' /etc/hosts
        울산 =====> 231.101.9.11
        부산 =====> 3.7.23.232
        일산 =====> 3.1.2.229
좀 어려운 예제.

[호스트 구리까지 읽고 소문자 abcde 를 대문자 ABCDE 로 바꾸고 밑줄 긋기, 호스트 대구까지 읽고 나머지 소문자를 대문자로 바꾸고 밑줄긋기, 마지막행까지 읽고 숫자(0-9)를 '숫자'로 바꾸고 밑줄긋기]

        wolf@zizik.net]$ cat sample.sed
        H

        /kuri/ {
                g
                y/abcde/ABCDE/
                a \
                _______________________
                p
                n
                h
               }
        
        /daegu/ {
                g
                y/fghijklmnopqrsutvwxyz/FGHIJKLMNOPQRSUTVWXYZ/
                a \
                _______________________
                p
                n
                h
               }
        $ {
                g
                s/[0-9]/숫자/g
                a \
                _______________________
                p
               }

        wolf@zizik.net]$ sed -n -f sample.sed /etc/hosts

        231.101.9.11    ulsAn           울산  101
        231.102.9.11    kAngByun        강변  102
        231.104.9.11    worlD           월드  104
        231.107.9.11    sEohyun         서현  107
        231.108.9.11    Chungju         청주  108
        231.109.9.11    kuri            구리  109
        _______________________
        231.111.9.11    bUPYUNG         부평  111
        231.112.9.11    JUYeUP          주엽  112
        231.113.9.11    daeJUN          대전  113
        231.114.9.11    YeONSU          연수  114
        231.115.9.11    cHUNaN          천안  115
        231.116.9.11    SaNGMU          상무  116
        231.117.9.11    SaHa            사하  117
        231.118.9.11    daeGU           대구  118
        _______________________
        숫자.숫자.숫자숫자.숫자숫자숫자      kwanak          관악  숫자숫자숫자
        숫자.숫자.숫자숫자.숫자숫자숫자      pusan           부산  숫자숫자숫자
        숫자.숫자.숫자.숫자숫자숫자       ilsan           일산  숫자숫자숫자
        _______________________