せっかくなので貼ってみる
行数固定のところとか、awk使ってるとか、空行消すとことか、インデントとか、全然スマートさが感じられないけど。ちなみにdiffはいつもcolordiffにaliasしてたのでawkでなかなかマッチしなくてはまったので\を入れといた。 sed -e '/\000/d' -e '/\0a/d' -e '/^$/d'とかしてコマンド一個(trでもいいんだけど) にしたいけどうまくいかない。
#!/bin/sh expect > ~/tmp/router_new.log << EOS spawn telnet 192.168.0.1 expect login send -- "admin\r\n" expect "Password: " send -- "yourpassword\r\n" expect ">" send -- "show log sys\r\n" expect "\r\n\r\n\r\n" send -- "exit\r\n" EOS cat ~/tmp/router_new.log | cut -d" " -f14-414 | tr -s '[\r\000]' '\n' > ~/tmp/router_new.log \diff -a ~/tmp/router{_new,}.log|grep -v "^<" | cut -d" " -f2- > ~/tmp/router_diff.log cat ~/tmp/router_{new,diff}.log >~/tmp/router.log