私のスキルを上回るプロジェクトがあります。私の最終目標は、処理されたデータを散布図にすることです。列をデータ行に転記する
Counter Name Port: 1/8/x1 Port: 1/8/x2 Port: 1/8/x3 Port: 1/8/x4
================== ================ ================ ================ ================
IfInOctets: 5470343 5520353 5628425 5685539
IfInUcastPkts: 8878 9029 9345 9512
IfInNUcastPkts: 17779 17755 17755 17755
IfInPktDrops: 0 0 0 0
IfInDiscards: 26657 26784 27100 27267
IfInErrors: 0 0 0 0
Port number,IfInErrors
に値:これを行うには、私はこのフォーマットからのログ出力を変換する必要があります。
不要なラベルを減らすために、私はawkと他のコマンドを繰り返し使用します。 。
for i in `ls *.log`; do
awk '/Counter Name|IfInDiscards/ {print $0}' $i.txt
done
(再び私のスキルレベルが「MUYのpequeñaである)コマンドは次のとおりです。
for i in `ls *.log`; do
awk '/Counter Name|IfInDiscards/ {print $0}' $i.txt
done
私は次のクリーンな柱状のデータを私に残しsed
sed -i 's/Counter Name//g' *.txt #Delete Counter name and IfInDiscards
sed -i 's/IfInErrors://g' *.txt
sed -i 's/Port: //g' #Eliminate unnecessary Port: and space
sed -i 's/ */ /g'
sed -i "s/ /,/g" #Convert white space to commas
を使用して不要なデータを破棄します。
Column1,column2,Column3,Column4,Column5
Row1 ,1/8/x1,1/8/x2,1/8/x3,1/8/x4
Rowd2 ,0,0,0,0
私の次の項目は、先行するコンマ(Column1)を削除することです。
Column1,column2,Column3,Column4
Row1 1/8/x1,1/8/x2,1/8/x3,1/8/x4
Row2 0,0,0,0
私にとっては、このフォーマット(連結列+行データ、コマンドと列+行データ)にデータを取得するのが大変です。
Col1+row1,col1+row2
Col2+row1,col2+row2
。 。 end
常に4つの列と100行までです。
私はこれをコードに変換する方法はわかりません。
いつものように、私は自分のスキルレベルを構築したいと思うように、単純な「誰かが私のためにこれを行うことができる」アプローチを探しているだけではありません。コピー+ペーストは速いが、私は学ばない。
言われているとおり、私は指針を探しています。
これをシェルですべて実行しようとしていますか? – JimmyJames
はい、私です。私はPythonを学んでいますが、話し合うピアがなければ遅くなり、仕事はいつもかなり忙しいです。 –