2011-11-01 14 views
16

'da görüntülemek için "head" ve "tail" kombinasyonlarını kullanarak 3 satırlık metin içeren bir dosya adı myownfile.txt varsa.Dosyanın orta satırını Unix

foo 
hello world 
bar 

Ben sadece head ve tail komutunu kullanarak hello world olan ortadaki çizgiyi göstermek istiyorum.

+0

hangi dosya 3'ten fazla şeritleri yoksa ??? – anil

cevap

21
head -2 myownfile | tail -1 

Eğer

+0

Teşekkür ederim işe yarıyor! Biraz açıklayabiliyor musun, lütfen kafanın 2 satır 2'den başlaması anlamına geliyor? ve kuyruk -1 de alttan 2. satırdan başlıyor? – Ali

+2

'head -2', dosyanın ilk ** iki ** satırını alır. Bu çıktı, _piped output_'ın son ** bir ** satırını alan "tail -1" ile (bu, dosyanın ortasında bir yerde olabilir) verilir. – ADTC

1

head -2 | tail -1 deneyin istediğini yapmalıdır. Bu, ilk yarı + bir (head -2) son satırı (tail -1). İlk

+0

Açıklama için çok teşekkür ederim bana çok yardımcı oluyor – Ali

4

head -2, bir dosyanın 2 satır

$ head -2 myownfile.txt 
foo 
hello world 

tail -1, bir dosyanın en son satır:

$ head -2 myownfile.txt | tail -1 
hello world 
1

kuyruk -2 myownfile.txt | baş -1

o olacak 2. satırı göster.

1

Buradaki partiye biraz geç kaldım, ancak bunu yapmanın daha esnek bir yolu baş ve kuyruk kullanmak yerine awk kullanmak olacaktır.

hakimiyetin şu şekilde görünecektir:

awk 'NR==2' myfile.txt 

merhaba dünya