Yalnızca terminal çıkışından gereken satırı nasıl alırım?

16

Yalnızca, df -h çıkışının üçüncü satırı diyelim.

Ne tür bir komut kullanmalıyım?

    
sordu emrecnl 14.06.2016 15:37

7 cevap

31

Bu, içeriğe bakılmaksızın 3. satırı çıkarır.

df -h | sed -n 3p
    
verilen cevap bc2946088 14.06.2016 15:41
16

df komutu, aslında istediğiniz dosya sistemini tanımlayan bir argümanı kabul eder. Yani, örneğin, df /home veya df /dev/sda3 'yi kullanabilirsiniz.

Bir komut dosyasının çıktısını ayrıştırmak isterseniz, hiçbir zaman birden fazla satıra kadar sarılmayacağından emin olmak için df -P değerini kullanmak istersiniz. Bu nedenle, örneğin, df -Ph /home | tail -n +2 kullanabilirsiniz (ancak, bir komut dosyasının çıktısını ayrıştırıyorsanız, boşluklu dosya isimlerinin olasılığının farkında olun).

    
verilen cevap Random832 14.06.2016 18:05
14

head ve tail 'nin bir kombinasyonunu kullanabilirsiniz:

df -h | head -3 | tail -1

Ya

df -h | tail -n +3 | head -1

Ancak, df 'sının çıkışı df ' nin kendisinden gelen seçeneklere göre filtrelemeye izin verdiğini, herhangi bir harici komut kullanmadan önce bunlara bakmanız gerektiğini unutmayın.

man df kontrol edin.

    
verilen cevap heemayl 14.06.2016 15:43
10

Awk, metin işleme aracıdır, bu nedenle bu görev için uygundur

df -h | awk 'NR == 3'
    
verilen cevap Sergiy Kolodyazhnyy 14.06.2016 15:47
6

Mutlaka üçüncü satırı değil, belirli bir diskin (örneğin /dev/sda3 ) veya belirli bir bağlama noktasından (örn. /home ) bahseden satır için aradığınızı varsayıyorum.

Dolayısıyla, yalnızca üçüncü satırı görüntülemekten ziyade, çıktı sırasının değişebileceği ve farklı bir sonuç alacağınız için güvensiz olan çıktıya 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, cihaz hakkında /dev/sda3 satırını istiyorsanız, şunu yazın:

df -h | grep '/dev/sda3'

Ana dizininizden bağlantı noktası olarak bahseden satırın kullanılmasını istiyorsanız:

df -h | grep '/home'
    
verilen cevap Byte Commander 14.06.2016 15:50
6

Ayrıca perl kullanabilirsiniz:

df -h | perl -ne 'print if $.==3' 

$. geçerli satır numarasıdır, bu nedenle Nth satırını perl -ne 'print if $.==N' ile yazdırabilirsiniz.

    
verilen cevap terdon 14.06.2016 15:54
2

İlk düşüncem baş-kuyruk yapısı olurdu.

Örnek:

df -h | head -3 | tail -1

head -3 , üç satırdan sonra çıkışın durmasına ve tail -1 değerinin yalnızca son satırın çıkmasına neden oluyor.

Alternatif olarak, eğer bildiğiniz gibi, çıktı nasıl görünecekse, belirli bir dizeyi içeren satırları bulmak için grep kullanabilirsiniz.

    
verilen cevap Wayne_Yux 14.06.2016 15:43

Etiketlerdeki diğer soruları oku