0

次のコードを書きました。

success="Traffic Engineering Tunnel validated successfully"
text=$(tail -2 /apps/pofitb/logs/tunnels.log)
echo $executed_date
if  [[ $text = $success ]]
then
    text=$(tail -2 /apps/pofitb/logs/tunnels.log)
    echo "Tunnel script execution is successful" | mailx -s "Tunnel script is executed succefsfully on $executed_date" abc@gmail.com 
else
    echo "Tunnel script  lastly executed  on $executed_date" | mailx -s "Tunnel script  FAILED!!!" abc@gmail.com 
fi
exit

現在、更新中の tunnel.log ファイルには空白行があります。そのためtext=$(tail -2 /apps/pofitb/logs/tunnels.log)、ファイルの末尾から空白以外の最後の行を抽出します。これは、ファイルの最後に挿入される空白行の数が 1 の場合に機能します。

挿入された空白行の数に関係なく、スクリプトがファイル tunnel.log から最後の最後の非空白行を検索するようにスクリプトを変更するにはどうすればよいですか?

4

1 に答える 1

2

助けて!

tac log | awk 'NF{print;exit}'

ログが長すぎる場合は、最初に寛大なテールから始めます

 tail -5 log | tac | awk 'NF{print;exit}'

空でない最後の行を出力します。

于 2015-09-30T21:46:33.947 に答える