数字と文字を含むテキストがあり、その中で数字のみを抽出したい場合の「grep -o ‘[0-9]*’」のようにgrepコマンドを利用すれば利用できます
# grep -o '[0-9]*'とすれば、数字のみを抽出できます $ echo "price:198000" | grep -o '[0-9]*' 198000 # カンマも含めて中したい場合は、grep -o '[0-9,]*'とすれば、数字とカンマも抽出できます $ echo "price:198,000" | grep -o '[0-9,]*' 198,000
例えば df コマンドでフリースペースの割合を取りたい場合は、下記のようにすれば%を省いて数字のみを抽出できます
$ df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 894M 0 894M 0% /dev
tmpfs 909M 0 909M 0% /dev/shm
tmpfs 909M 100M 810M 11% /run
tmpfs 909M 0 909M 0% /sys/fs/cgroup
/dev/vda1 55G 18G 34G 35% /
tmpfs 182M 0 182M 0% /run/user/1000
# df コマンドでデバイス名を指定して、使用率をします
$ df -h | grep "/dev/vda1" | awk {'print $5'}
35%
# grep -o '[0-9]*' をつけると% を省いた数字が表示されます
$ df -h | grep "/dev/vda1" | awk {'print $5'} | grep -o '[0-9]*'
35



コメント