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 일산 숫자숫자숫자
_______________________ |