次のlsblk
コマンドは、ディスク使用量をバイト単位で出力します
lsblk -bio KNAME,TYPE,SIZE,MODEL| grep disk
sda disk 298999349248 AVAGO
sdb disk 1998998994944 AVAGO
sdc disk 1998998994944 AVAGO
sdd disk 1998998994944 AVAGO
sde disk 98998994944 AVAGO
パイプの後にawk
またはPerl
ワンライナーを追加することにより、ディスクが300000000000より大きい場合にディスクを印刷する方法
予想される出力:
lsblk -bio KNAME,TYPE,SIZE,MODEL| grep disk | ......
sdb disk 1998998994944 AVAGO
sdc disk 1998998994944 AVAGO
sdd disk 1998998994944 AVAGO
awk
を使用する代わりに、grep
自体を使用してパターンマッチングを行うことができます。
lsblk -bio KNAME,TYPE,SIZE,MODEL| awk '/disk/ && $3> 300000000000 || NR==1'
または科学的な値を使用する3e11
。
Perlソリューション:
lsblk -bio KNAME,TYPE,SIZE,MODEL | Perl -ane 'print if $F[2] > 3e11'
値として300_000_000_000を使用することもできます。
-n
は、印刷せずに1行ずつ入力を読み取ります-a
は空白の入力を@F配列に分割します短いAwkアプローチ:
lsblk -nbio KNAME,TYPE,SIZE,MODEL | awk '$3>3e11'
-n
(--noheadings
)-見出しを印刷しない
$3
-3番目のフィールド(SIZE
列)
3e11
-[〜#〜] e [〜#〜]-表記。文字E
(またはe
)は、「倍数tenの累乗」(これは"× 10n
")として記述され、その後に指数の値が続きます。つまり、任意の2つの実数m
およびn
の場合、" mEn
"はm × 10n
の値を示します。3e11
は300000000000
と同等です。