Session status: UP-ACTIVE
Peer: 192.168.1.1
こんな表示を
192.168.1.1,UP-ACTIVE
にしたい場合
#!/bin/sh
grep “Session status: ” -A 1 testlog.txt | grep -v -e “–” | sed ‘s/^M//’ | sed
-n -f sed.txt | sort
で、sed.txtは
{
N
s/Session status: //
s-Peer: \(.*\)/.*-\1-
s/^\(.*\)\n\(.*\)/\2,\1/
p
}
とすればOK
単に自分でも忘れそうだから、仕事の覚え書きw
コメント
じゃあ漏れはこれで、”cat testlog.txt |sort|tr ‘\n’ ‘,’|sed ‘s/\(Peer: \|Session status: \)//g;s/,$/\n/'”
ああこれじゃ複数あるとダメか。
そう、実データはこれが繰り返される複数行なのよw
ついでに
sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n
これでIPアドレス順に並べ替え。
んじゃこんで。”cat source.txt |grep ‘Session status’ -A 1|tr ‘\n’ ‘,’|sed -e ‘s/\(Session status: \)/\n/g;s/\([A-Z,-]*\),Peer: \([1-9]*\.[1-9]*\.[1-9]*\.[1-9]*\)/\2:\1/g;y/:,/,\n/’|tr -s ‘\n'”・・・長くなったかw
んじゃこんで。”cat testlog.txt |grep ‘Session status’ -A 1|tr ‘\n’ ‘,’|sed -e ‘s/\(Session status: \)/\n/g;s/\([A-Z,-]*\),Peer: \([1-9]*\.[1-9]*\.[1-9]*\.[1-9]*\)/\2:\1/g;y/:,/,\n/’|tr -s ‘\n'”・・・長いw