このデータをアプリケーションに読みたい人に役立つ正規表現を作成しました。
これを行うには、lsblkコマンドを使用すると、"-P"コマンドを使用するとより便利になります。 ここでは例を示します:
$ lsblk -P -o KNAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,MODELKNAME="sda" FSTYPE="" SIZE="80G" MOUNTPOINT="" LABEL="" MODEL="VBOX HARDDISK "KNAME="sda1" FSTYPE="" SIZE="243M" MOUNTPOINT="/boot" LABEL="" MODEL=""KNAME="sda2" FSTYPE="" SIZE="1K" MOUNTPOINT="" LABEL="" MODEL=""KNAME="sda5" FSTYPE="" SIZE="79.8G" MOUNTPOINT="" LABEL="" MODEL=""KNAME="dm-0" FSTYPE="" SIZE="79G" MOUNTPOINT="/" LABEL="" MODEL=""KNAME="dm-1" FSTYPE="" SIZE="768M" MOUNTPOINT="[SWAP]" LABEL="" MODEL=""KNAME="sr0" FSTYPE="" SIZE="1024M" MOUNTPOINT="" LABEL="" MODEL="CD-ROM "KNAME="sr1" FSTYPE="" SIZE="1024M" MOUNTPOINT="" LABEL="" MODEL="CD-ROM "
次のような正規表現を使用してこの出力を読むことができます
/KNAME=\"(.*)\" FSTYPE=\"(.*)\" SIZE=\"(.*)\" MOUNTPOINT=\"(.)*\" LABEL=\"(.*)\" MODEL=\"(.*)\"/g
http://regex101.com/r/uX5eG3/1
パーティションのサイズが必要ない場合は、mount-lを使用して次の操作を行うことができます
$ mount -l/dev/mapper/precise32-root on / type ext4 (rw,errors=remount-ro)proc on /proc type proc (rw,noexec,nosuid,nodev)sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)none on /sys/fs/fuse/connections type fusectl (rw)none on /sys/kernel/debug type debugfs (rw)none on /sys/kernel/security type securityfs (rw)udev on /dev type devtmpfs (rw,mode=0755)devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)none on /run/shm type tmpfs (rw,nosuid,nodev)/dev/sda1 on /boot type ext2 (rw)rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw)/vagrant on /vagrant type vboxsf (uid=1000,gid=1000,rw)
そして、そのような正規表現を使ってそれを読んでください
/(.*) on (.*) type (.*) \((.*)\)/g
http://regex101.com/r/nE4pQ9/1
ノードでそれを行っている場合は、次のようなコードを使用して文字列を出現の配列に変換できます
stdout.split("\n").map(function(x){return x.split(/(.*) on (.*) type (.*) \((.*\))/g)});