Saya hanya ingin mendapatkan katakanlah df -h
output baris ketiga .
Perintah apa yang harus saya gunakan?
command-line
text-processing
emrecnl
sumber
sumber
Jawaban:
Ini akan menampilkan baris ke-3, terlepas dari kontennya.
sumber
df -h|sed -n 3p
.The
df
perintah benar-benar menerima argumen mengidentifikasi filesystem yang Anda inginkan. Jadi, Anda dapat menggunakan, misalnya,df /home
ataudf /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 menggunakandf -Ph /home | tail -n +2
(tetapi jika Anda mengurai output untuk skrip, perhatikan kemungkinan nama file dengan spasi di dalamnya)sumber
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
dantail
:Atau
Tetapi perhatikan bahwa,
df
memungkinkan untuk memfilter output dari opsidf
itu sendiri, Anda harus melihatnya terlebih dahulu sebelum menggunakan perintah eksternal.Periksa
man df
.sumber
Awk adalah alat pengolah teks, jadi ini sesuai untuk tugas ini
sumber
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:Jika Anda ingin baris yang menyebutkan direktori home Anda sebagai titik mount, gunakan:
sumber
df -h /dev/sda3
ataudf -h /home
(yang terakhir bekerja bahkan jika itu bukan titik mount).Anda juga bisa menggunakan
perl
:Ini
$.
adalah nomor baris saat ini, sehingga Anda dapat mencetak baris ke-N denganperl -ne 'print if $.==N'
.sumber
Ide pertama saya adalah konstruksi kepala-ekor.
Contoh:
head -3
menyebabkan output berhenti setelah tiga baris dantail -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.sumber