bash 配列
配列使えるのでなんか適当なことできないかなと思って、日々取得している各OLTのbit-errorを取得するコマンド結果のファイル
で取得時とその次の取得時でbit-errorカウンタが大きく変動しているものを見つけようとしています。
LISTでlsした結果を配列にしてて seq 1 x で配列の番号確定と必要数ループさせようとしてます。
LIST=($(ls OLT1-BERSTATS-20230601*)) FC=($(ls OLT1-BERSTATS-20230601* | wc -l)) for n in `seq 1 $FC` do cat OLT1INT | while read INT do BDSBER=($(zcat ${LIST[$n]} | grep "$INT " | awk '{print $3}')) ADSBER=($(zcat ${LIST[$n+1]} | grep "$INT " | awk '{print $3}')) BUSBER=($(zcat ${LIST[$n]} | grep "$INT " | awk '{print $4}')) AUSBER=($(zcat ${LIST[$n+1]} | grep "$INT " | awk '{print $4}')) if [ $(($AUSBER - $BUSBER)) -gt 1000000 ]; then echo ${LIST[$n]} echo "USBER 1000000 over ${INT}" $(($AUSBER - $BUSBER)) fi if [ $(($ADSBER - $BDSBER)) -gt 1000000 ]; then echo ${LIST[$n]} echo "DSBER 1000000 over ${INT}" $(($ADSBER - $BDSBER)) fi done done
zcatしてgrepしてるところはzgrepでよさそう。
あと、 ${LIST[$n+1]} こういう書き方が許されるんだーと少し驚いたのでメモ書き