grep コマンドで数字のみを表示する

数字と文字を含むテキストがあり、その中で数字のみを抽出したい場合の「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

 

スポンサーリンク