文字列一致後の最後の単語のフィルタリング

文字列一致後の最後の単語のフィルタリング

Bashコマンドの戻り文字列から一部の16進値をフィルタリングする必要があります。たとえば、次のようになります。

hexVal=`mmc extcsd read /dev/mmcblk1 | grep 'Max Enhanced Area Size'`

hexVal 値を返します。

Max Enhanced Are Size [MAX_ENH_SIZE_MULT]: 0x000bd8

ここで hexVal の値を次のように返す必要があります。

0x000bd8

答え1

grepawkパターンマッチングとマッチフィールドを印刷するときに便利なので、代わりに使用できます。

mmc extcsd read /dev/mmcblk1 | awk -F: '$1 ~ "^""Max Enhanced Area Size" { print $2 }'

上記の結果から先行スペースを削除することもできます。

awk -F: '$1 ~ "^""Max Enhanced Area Size" { sub(/^[[:space:]]/,"",$2); print $2 }'

grepGNUバージョンを使用していてインストールされている場合は、PCREモードを使用してください。

grep -oP '^Max Enhanced Area Size.*:(\s+)\K(.+)'

関連情報