私の入力ファイルのいくつかの行は次のとおりです。
08:51:36 UN 127.0.0.1
08:51:36 UN 127.0.0.2
08:51:36 UN 127.0.0.3
08:53:50 DN 127.0.0.1
08:53:50 DN 127.0.0.2
08:53:50 DN 127.0.0.3
IPアドレスを入力するシェルスクリプトを作成したいと思います。
./CountRate.sh 127.0.0.1
スクリプトは0.5を返す必要があります。式は、IP 127.0.0.1のノードがUN状態(「1」)にある回数を127.0.0.1(「2」)が表示される行数で割ったものです。これを達成するには、どのLinuxコマンドを使用する必要がありますか?
ベストアンサー1
スクリプトawk
言語を使用すると、次の作業が簡単になります。
awk -v host=127.0.0.1 '
$3 == host {n++; x += $2 == "UN" ? 1 : 0}
END {print x/n}
' inputfile
0.5