Bashスクリプトで行の最後の番号を選択する方法

Bashスクリプトで行の最後の番号を選択する方法

smartctl -a コマンドの出力は次のとおりです。

9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 301

次のようにbashスクリプトの変数に(正しい用語の場合)入れました。

$SMARTCTL_OUTPUT=`smartctl -a /dev/sda`

行末の数字だけが変数に返されるように解析したいので、上記の例では301変数に入れます$POWER_ON_HOURS

私はgrepを使ってみました。

$SMARTCTL_OUTPUT=`smartctl -a /dev/sda | grep "Power_On_Hours"`

しかし、これは9 Power_On_Hours 0x0032 100 100 000 Old_age Always -私が興味のない別のテキスト()を返します。

行末の数字だけを返すことはできますか?

ベストアンサー1

使用するとawk '{print $NF}' 目的が達成されます。$NF最後のフィールドを参照します。アッデータ抽出に使用される言語です。

AWKプログラムは、次のように書かれた一連のパターン作業ペアです。

''条件'' { ''作業'' }

awk '{print $NF}'  

最後のフィールドは常に印刷されます。

おすすめ記事