Saya hanya ingin mendapatkan katakanlah df -h
output baris ketiga .
Perintah apa yang harus saya gunakan?
Saya hanya ingin mendapatkan katakanlah df -h
output baris ketiga .
Perintah apa yang harus saya gunakan?
Jawaban:
The df
perintah benar-benar menerima argumen mengidentifikasi filesystem yang Anda inginkan. Jadi, Anda dapat menggunakan, misalnya, df /home
atau df /dev/sda3
.
Jika Anda bermaksud mem-parsing output untuk skrip, Anda akan ingin menggunakannya df -P
untuk memastikan tidak pernah membungkus ke beberapa baris. Jadi, misalnya, Anda bisa menggunakan df -Ph /home | tail -n +2
(tetapi jika Anda mengurai output untuk skrip, perhatikan kemungkinan nama file dengan spasi di dalamnya)
df /home
memberikan header. Anda menafsirkan tujuan pengguna. Kamu mungkin benar. Anda mungkin salah, siapa tahu?
tail -n +2
menghapus tajuk.
Anda dapat menggunakan kombinasi dari head
dan tail
:
df -h | head -3 | tail -1
Atau
df -h | tail -n +3 | head -1
Tetapi perhatikan bahwa, df
memungkinkan untuk memfilter output dari opsi df
itu sendiri, Anda harus melihatnya terlebih dahulu sebelum menggunakan perintah eksternal.
Periksa man df
.
Awk adalah alat pengolah teks, jadi ini sesuai untuk tugas ini
df -h | awk 'NR == 3'
Saya berasumsi Anda tidak perlu mencari baris ketiga, tetapi untuk baris yang menyebutkan disk tertentu (misalnya /dev/sda3
) atau titik pemasangan tertentu (misalnya /home
).
Jadi, alih-alih hanya menampilkan baris ketiga, yang tidak aman karena urutan output mungkin berubah dan Anda mungkin mendapatkan hasil yang berbeda, Anda dapat memfilter output berdasarkan konten dan hanya menampilkan baris yang cocok dengan pola tertentu atau berisi kata kunci.
Alat Anda untuk ini adalah grep
.
Misalnya jika Anda ingin baris tentang perangkat /dev/sda3
, Anda mengetik:
df -h | grep '/dev/sda3'
Jika Anda ingin baris yang menyebutkan direktori home Anda sebagai titik mount, gunakan:
df -h | grep '/home'
df -h /dev/sda3
atau df -h /home
(yang terakhir bekerja bahkan jika itu bukan titik mount).
Anda juga bisa menggunakan perl
:
df -h | perl -ne 'print if $.==3'
Ini $.
adalah nomor baris saat ini, sehingga Anda dapat mencetak baris ke-N dengan perl -ne 'print if $.==N'
.
Ide pertama saya adalah konstruksi kepala-ekor.
Contoh:
df -h | head -3 | tail -1
head -3
menyebabkan output berhenti setelah tiga baris dan tail -1
hanya akan menghasilkan baris terakhir.
Atau, jika Anda tahu, bagaimana output akan terlihat, Anda juga bisa menggunakan grep
untuk menemukan garis yang berisi string tertentu.