sed -n '10000000,10000020p' filename
Bunu biraz daha hızlandırabilirsin:
sed -n '10000000,10000020p; 10000021q' filename
Bu komutların, seçenek -n
neden sed
"desen alanının otomatik baskı bastırmak". p
Komut "Baskı [s] Geçerli desen alanı" ve q
komut "Derhal bir daha girdi işlemeden [s] sed komut dosyası çıkın ..." tırnak gelmektedir sed
man
sayfa .
Bu arada, emriniz
tail -n 10000000 filename | head 10
dan on milyonuncu satırında başlar sonuna sizin "orta" komutu on milyonda başlayacak gibi görünüyor ise dosyanın, başından eşdeğer olacaktır:
head -n 10000010 filename | tail 10
Sorun, değişken uzunluklu satırlara sahip sıralanmamış dosyalar için herhangi bir işlemin dosya sayma yeni satırlarını incelemesi gerekmesidir. Kısayol yapmanın yolu yok.
Bununla birlikte, dosya sıralanırsa (örneğin, zaman damgası olan bir günlük dosyası) veya sabit uzunluk çizgileri varsa, o zaman bayt konumunu temel alarak dosyayı arayabilirsiniz. Günlük dosyası örnekte, benim Python komut dosyası olarak kez aralığı için bir ikili arama yapabileceğini burada * yapar. Sabit kayıt uzunluğu dosyası durumunda, bu gerçekten kolay. Sadece linelength * linecount
dosyaya karakterleri ararsınız.
* Ben o betiğe başka bir güncelleme göndermek anlamına gelir. Belki bugünlerden biriyle uğraşırım.