lsblk +特定サイズのディスクのみ印刷

lsblk +特定サイズのディスクのみ印刷

18G以上のすべてのディスクを印刷したいです。
ディスクのみを印刷するには、次の構文をどのように適用できますか? => 18G

lsblk -l  | awk '/disk/'

fd0            2:0    1     4K  0 disk
sda            8:0    0   150G  0 disk
sdb            8:16   0    20G  0 disk 
sdc            8:32   0    20G  0 disk 
sdd            8:48   0    20G  0 disk 
sde            8:64   0    20G  0 disk 
sdf            8:80   0    20G  0 disk 
sdg            8:96   0    20G  0 disk
sdh            8:112  0    20G  0 disk
sdi            8:128  0    20G  0 disk
sdj            8:144  0    2G   0 disk
sdk            8:160  0    2G   0 disk

ベストアンサー1

lsblk+awk+numfmt解決策:

lsblk -lnb | awk '$4>=19327352832' | numfmt --to=iec --field=4

lsblkオプション:

  • -n- ヘッダー行を印刷しない
  • -b- 人間が読める形式ではなく、SIZE列をバイト単位で印刷します。

awk詳細:

  • $4- 4番目のフィールド値(SIZE列)
  • 19327352832-18Gバイト単位と同じ

numfmtオプション:

  • --to=iec- 出力数量の自動スケーリングは、オプションの単一UNITs文字のサフィックスを可能にします。1K = 1024, 1M = 1048576, ...
  • --field=<FIELDS>- この入力フィールドの数値の変更/変換FIELDS

おすすめ記事