Sadık KILIÇ

Web Tabanlı Hafıza Yerleşimi

Dosyadaki en uzun satır

Longest line in a file

Bir dosyadaki en uzun satırı bulmak istiyoruz. Örnek olması açısından İstiklal Marşı’mızın ilk iki kıtasını içeren istiklal.txt isimli dosyayı kullanıcam.

cat istiklal.txt 
Korkma, sönmez bu şafaklarda yüzen al sancak
Sönmeden yurdumun üstünde tüten en son ocak.
O benim milletimin yıldızıdır parlayacak!
O benimdir, o benim milletimindir ancak!
 
Çatma, kurban olayım, çehreni ey nazlı hilal!
Kahraman ırkıma bir gül... ne bu şiddet, bu celâl?
Sana olmaz dökülen kanlarımız sonra helal.
Hakkıdır, Hakk'a tapan milletimin istiklal.

wc komutu -L parametresiyle kullanılınca dosyadaki en uzun satırın kaç karakterden olduğunu görebiliriz.

wc -L istiklal.txt
50 istiklal.txt

Görüldüğü üzere en uzun satır 50 karakterden oluşuyor. Ama hangi satır en uzunu bilmiyoruz. En uzun satırı bulalım. (Bu örnek için dosyayı şöyle bir açıp göz atarak en uzun satır kolayca farkedilebilir aslında. Ama binlerce satırdan oluşan bir dosya üzerinde bu mümkün değil)

Yöntem 1

awk '{ if(length($0)>max) {max=length($0); max_line=$0} } END {print max_line}' istiklal.txt
Kahraman ırkıma bir gül... ne bu şiddet, bu celâl?

Yöntem 2

awk '{print length($0),$0}' istiklal.txt | sort -nr | head -1 | sed 's/^[0-9][0-9]* //'
Kahraman ırkıma bir gül... ne bu şiddet, bu celâl?

, ,

Leave a Reply

Your email address will not be published.