Diyelim ki sadece üçüncü satır df -h
çıktı almak istiyorum .
Ne tür bir komut kullanmalıyım?
Diyelim ki sadece üçüncü satır df -h
çıktı almak istiyorum .
Ne tür bir komut kullanmalıyım?
Yanıtlar:
df
Komut aslında istediğiniz dosya sistemini tanımlayan bir argüman kabul eder. Yani örneğin, kullanın olabilir df /home
veya df /dev/sda3
.
Bir komut dosyasının çıktısını ayrıştırmak istiyorsanız, df -P
asla birden fazla satıra sarılmamasını sağlamak için kullanmak istersiniz . Örneğin, kullanabilirsiniz df -Ph /home | tail -n +2
(ancak bir komut dosyası için çıktıyı ayrıştırıyorsanız, içinde boşluk bulunan dosya adlarının bulunma olasılığının farkında olun)
df /home
. Kullanıcının amacını yorumluyorsunuz. Haklı olabilirsin. Yanılıyor olabilirsiniz, kim bilir?
tail -n +2
başlığı kaldırır.
Sen bir arada kullanabilir head
ve tail
:
df -h | head -3 | tail -1
Veya
df -h | tail -n +3 | head -1
Ancak df
, çıktıyı df
kendi seçeneklerinden filtrelemeye izin verdiğini, herhangi bir harici komutu kullanmadan önce bunlara bakmanız gerektiğini unutmayın.
Kontrol edin man df
.
Awk metin işleme aracıdır, bu nedenle bu görev için uygundur
df -h | awk 'NR == 3'
Mutlaka üçüncü satırı değil, belirli bir diski (örneğin /dev/sda3
) veya belirli bir bağlama noktasını (örn /home
.
Bu nedenle, çıktı sırasının değişebileceği ve farklı bir sonuç alabileceğiniz için güvenli olmayan üçüncü satırı görüntülemek yerine, çıktıyı içeriğe göre filtreleyebilir ve yalnızca belirli bir kalıpla eşleşen veya bir anahtar kelime içeren satırları gösterebilirsiniz.
Bunun için aracınız grep
.
Örneğin /dev/sda3
, aygıtla ilgili satırı istiyorsanız, şunu yazın:
df -h | grep '/dev/sda3'
Giriş dizininizden bahseden satırın bağlama noktası olmasını istiyorsanız, şunu kullanın:
df -h | grep '/home'
df -h /dev/sda3
veya df -h /home
(ikincisi bir bağlama noktası olmasa bile çalışır).
Ayrıca perl
şunları kullanabilirsiniz :
df -h | perl -ne 'print if $.==3'
$.
Birlikte N. hattını yazdırmak böylece, geçerli satır numarasıdır perl -ne 'print if $.==N'
.
İlk fikrim baş-kuyruk-yapı olurdu.
Misal:
df -h | head -3 | tail -1
head -3
çıktının üç satırdan sonra durmasına neden olur ve tail -1
yalnızca son satırın çıktısını alır.
Alternatif olarak, çıktının nasıl görüneceğini biliyorsanız, grep
belirli bir dize içeren satırları bulmak için de kullanabilirsiniz .