次のコマンドを使用して、使用可能なディスクのリストと、それらがssdであるか回転であるかを返します(基本的に、lsblkの出力の0と1を実際の意味に置き換えます)。
lsblk -d -o name,ro | sed "s/RO/\ TYPE/; s/NAME/DISK/; s/0/SSD/g; s/1/ROT/g"
サンプル出力:
DISK TYPE
sda SSD
sdb ROT
ここで、別の列「rm」をlsblk
(lsblk -d -o name,ro,rm
)に追加したいと思いますが、0と1を使用して別のことを意味します(0 =固定ディスク、1 =取り外し可能) 。
Sed(またはawkなど)を使用して、3番目の列の0と1をYESとNOに置き換える方法はありますか?
Awk
アプローチ:
lsblk -d -o name,ro,rm \
| awk 'NR == 1{ print "DISK TYPE REMOVABLE"; split("SSD ROT", ro); split("NO YES", rm); next}
{ print $1, ro[$2+1], rm[$3+1] }'
サンプル出力:
DISK TYPE REMOVABLE
sda SSD NO
sr0 SSD YES
試してみてください
lsblk -d -o name,ro,rm |
awk '$2 == 0 { $2 = "SSD" ; } $2 == 1 { $2 = "ROT" ; }
$3 == 0 { $3 = "NO" ; } $3 == 1 { $3 = "YES" ;}
{ print ; }'
1
の代わりに{ print ; }
を使用します。RO
をTYPE
に変更することは演習として残されています。