Tujuan saya adalah mendapatkan disk lebih besar dari 100G dari lsblk.
Saya membuatnya bekerja, tapi ini aneh. Saya cukup yakin itu bisa dipersingkat. Entah dengan menggunakan sesuatu yang sama sekali berbeda dari lsblk, atau mungkin saya bisa memfilter angka yang dapat dibaca manusia langsung dengan awk.
Inilah yang saya kumpulkan:
lsblk | grep disk | awk '{print$1,$4}' | grep G | sed 's/.$//' | awk '{if($2>100)print$1}'
Ini output hanya bagian sdx dan nvmexxx dari disk yang lebih besar dari 100G. Apa yang saya butuhkan.
Saya senang dengan itu, tetapi saya ingin belajar lebih banyak dari Anda Guru urus
Jawaban:
Anda dapat menentukan bentuk output yang Anda inginkan dari
lsblk
:Opsi yang digunakan :
Maka penyaringan lebih mudah:
Dalam kasus Anda, itu akan menjadi
100*2^30
100GiB atau100e9
/1e11
untuk 100GB.sumber
egrep '\d{12,}'
untuk menghapus garis dengan <12 digit secara berurutan. Awk tentu saja lebih universal.Anda juga dapat mengetahui
lsblk
output dalam format JSON dan melakukan pemfilteran denganjq
:Atau:
Untuk membatasi entri tipe
disk
.(
1e11
menjadi 100 GB. Ganti dengan107374182400
(atau100*1024*1024*1024
) untuk 100 GiB. Karena pembulatan,lsblk
itu sendiri tanpa-b
laporan 100G untuk ukuran mulai dari sekitar 99,9278 hingga 100,0488 GiB (untuk beberapa alasan))Dengan
lsblk -OJb
,lsblk
melaporkan semua informasi yang tersedia yang memungkinkan Anda melakukan seleksi yang lebih halus atau menghasilkan lebih banyak informasi yang relevan.Anda juga dapat memperoleh informasi langsung dari
/sys
. Denganzsh
:sumber
jq
(yang saya pelajari hanya beberapa bulan yang lalu).mencoba
ini akan grep dan filter pada saat yang bersamaan.
$4 ~ /G$/
diarsipkan dengan ukuran dalam G$4+0 > 100
dapatkan ukuran lebih dari 100G{print $1}
cetak NAMEsebagai aturan Anda seharusnya tidak perlu menggunakan
grep
danawk
dalam pipa yang sama.untuk mendapatkan hanya disk (dan tanpa partisi): awk filtering
dimana
$6 == "disk"
pilih hanya kolom dengan diskuntuk mendapatkan hanya disk (dan tanpa partisi): lsblk filtering
dimana
--nodeps
: -d, --nodeps tidak mencetak budak atau pemegangsumber
--no-deps
opsi, sesuai dengan gaya umum jawaban itu)