Saya hanya ingin mendapatkan katakanlah df -houtput baris ketiga .
Perintah apa yang harus saya gunakan?
Saya hanya ingin mendapatkan katakanlah df -houtput baris ketiga .
Perintah apa yang harus saya gunakan?
Jawaban:
The dfperintah benar-benar menerima argumen mengidentifikasi filesystem yang Anda inginkan. Jadi, Anda dapat menggunakan, misalnya, df /homeatau df /dev/sda3.
Jika Anda bermaksud mem-parsing output untuk skrip, Anda akan ingin menggunakannya df -Puntuk 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 /homememberikan header. Anda menafsirkan tujuan pengguna. Kamu mungkin benar. Anda mungkin salah, siapa tahu?
tail -n +2menghapus tajuk.
Anda dapat menggunakan kombinasi dari headdan tail:
df -h | head -3 | tail -1
Atau
df -h | tail -n +3 | head -1
Tetapi perhatikan bahwa, dfmemungkinkan untuk memfilter output dari opsi dfitu 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/sda3atau 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 -3menyebabkan output berhenti setelah tiga baris dan tail -1hanya akan menghasilkan baris terakhir.
Atau, jika Anda tahu, bagaimana output akan terlihat, Anda juga bisa menggunakan grepuntuk menemukan garis yang berisi string tertentu.