Saya ingin metode untuk menangkap penggunaan disk pada partisi tertentu, dengan menggunakan direktori tempat partisi tersebut dipasang. Outputnya harus berupa integer tanpa padding atau simbol berikut, karena saya ingin menyimpannya dalam variabel.
Saya telah menggunakan df --output=pcent /mount/point
, tetapi perlu memangkas output karena memiliki header yang tidak perlu, spasi tunggal sebelum nilai, dan simbol% mengikuti nilai seperti:
Use%
83%
Dalam hal ini output yang saya inginkan hanyalah 83
. Saya tidak mengetahui adanya kekurangan untuk menggunakan output dari df
, tetapi saya senang menerima metode lain yang tidak bergantung padanya.
command-line
bash
scripts
disk-usage
Arronikal
sumber
sumber
tr
, saya mendapatkan kepalaku berantakan dengan ide-ide sed dan awk.Jawaban:
Saya akan menggunakan ...
Tidak yakin apakah sed lebih cepat, tetapi saya tidak bisa mengingat nilai sed.
sumber
time
untuk mengujinya keluar sama cepatnya dengan sed.tr
lebih mudah dibaca daripadased
.Inilah solusi awk:
Pada dasarnya yang terjadi di sini adalah kita memperlakukan karakter '%' sebagai pemisah bidang (pembatas kolom), dan mencetak kolom pertama $ 1 hanya ketika jumlah catatan sama dengan dua (
NR==2
bagian)Jika kami ingin menggunakan
bash
alat-satunya, kami dapat melakukan sesuatu seperti ini:Dan untuk bersenang-senang, alternatif
sed
melalui grup tangkap dan-r
regex diperpanjang:sumber
sed
larutan1d
hapus baris pertama;
untuk memisahkan perintahs/^ //
hapus spasi dari awal bariss/%//
hapus%
tandasumber
Anda dapat menyalurkan ke
grep
yang baru saja mengekstrak digit:Lihat langsung:
sumber
Saya menemukan server di mana --output = pcent belum diimplementasikan, jadi saya menggunakan output normal, difilter menurut kolom, diikuti oleh regex:
df /mount/point | awk '{print $5}' | tr -dc '0-9'
sumber
Solusi dua langkah Bash
Menjadi penggemar agak bash (Borne Again SHell) tahun lalu saya pikir saya akan mengusulkan solusi menggunakannya.
df
keluaran ke variabelDF_PCT
.DF_PCT
dan menampilkannya di layar.5
dalam hal ini) dihasilkan.sumber
Ini solusi lain:
sumber