sed & awk
こんな感じの内容がいっぱい書かれた複数のXMLファイルから、
<host> <address>192.168.10.1</address> <name>linux-server</name> <information>Windows 2000 Pro</information> <room>My Room</room> <maintainer>me</maintainer> </host>
IPアドレスだけを取り出してファイルに出力する、1行シェルスクリプト。
$ grep address 192.168.10.* | sed -e 's/:/ /' | awk '{print $2}' | sed -e 's/<address>//' | sed -e 's/<\/address>//' > ~/ips.txt
出力されたファイルの内容はこんな感じ。
192.168.10.1 192.168.10.2 192.168.10.3 ... 192.168.10.100 192.168.10.110 192.168.10.120
sedを3度も使っているところが気になる。もっと短くかけそうな気もしたけど、sedやawkのマニュアルを読むのがめんどくさかったので、これでOKてことにした。
でも、sedとawkを使いこなせるようになるといいな。