マッチング後、残りの行をGrepします。

マッチング後、残りの行をGrepします。

次のように構成された2行のみを含むファイルがあります。

$ cat /tmp/pwpower.log
000D6F0000D34227, -114.10
000D6F0001A405C4, -130.09

これは私が運営する太陽光発電所の電力値です。負の値は生成を意味します。

最も賢明な方法であるgrep / sed / awkから値を抽出する必要があります。マイナス記号なしで2つの値を個別に抽出する必要があります。

今私がやっていることは少し愚かなことですが、効果があります。あなたの多くは私にもっと賢い方法を提案することができると確信しています。 :-) もちろん、ここでは値の加算と減算のみを見ることができます。

最初の値を取得します。

cat /tmp/pwpower.log |grep -o "\-.*" | head -n 1

2番目の値を取得します。

cat /tmp/pwpower.log |grep -o "\-.*" | tail -n1

関連する質問は、これらのSTRINGを取得してSUMを計算できるように変換する簡単な方法はありますか?

ベストアンサー1

すべての値:

$ awk -F '[ -]*' '$0=$NF' /tmp/pwpower.log
114.10
130.09

最初の行の値:

$ awk -F '[ -]*' 'NR==1{print $NF;exit}' /tmp/pwpower.log
114.10

2行目の値:

$ awk -F '[ -]*' 'NR==2{print $NF;exit}' /tmp/pwpower.log
130.09

すべての値の合計:

$ awk -F '[ -]*' '{sum+=$NF} END{print sum}' /tmp/pwpower.log
244.19

おすすめ記事