Satırdan başlayarak Unix kedi


40

Belirli bir satırdan başlayarak bir dosyadan çıktı almanın en iyi yolu nedir (70000 gibi büyük bir sayı). Gibi bir şey:

cat --line=70000 <file>

Yanıtlar:


60

Kuyruğa bir bakın, daha kesin olarak, --lines = + N anahtarı:

tail --lines=+100 <file>

Vay. Bunu Linux'ta 8 yıl kullandıktan sonra bile bilmiyordum! Ben her zaman bir fh fn kullandım! Teşekkürler ! getFromLine () {lineno = wc -l $1 | awk '{print $1}'; lineno = expr $lineno - $2; kuyruk -n $ lineno $ 1; }
secureBadshah

2
Not olarak, bu Dağ Aslanı üzerinde çalışmaz (Darwin Kernel Version 13.1.0). Dağ aslanı için varyanttail -n
Kaushik Ghose

22

En açık yol tail. Sözdizimi, kullandığınız işletim sistemine bağlı olarak biraz farklı olabilir:

tail -n +70000

Eğer alamıyorsanız tailişe şunu kullanabilirsiniz sed, ancak daha yavaş sonunda olabilir:

sed -pe '1,69999d'

tailMinGW'de (600 MB metin dosyasında) gayet iyi çalıştı . Çalışma zamanı sadece birkaç saniye sürdü (ancak giriş dosyası zaten dosya önbelleğinde olabilirdi).
Peter Mortensen,

2

Satır numarası yerine verilenleri içeren satırda listelemeye başlamanız gerekiyorsa, $phrase , aşağıdakileri deneyin.

more -1000 +/"$phrase" yourfilename | sed '1,4d'

-1000, sürekli olarak 1000 satıra kadar olan metinleri listeler; Bunu gerektiği gibi değiştirebilirsiniz. sedKomut otomatik getirildik çıktı, ilk 4 satır kesmek olacak morebir boş satır, "... atlama" mesajı ve amaçlanan başlangıç çizgisini önceki iki satır içeren. Sanırım bu sisteminize bağlı olarak değişebilir.


2

Sen kullanabilirsiniz NR ile parametreyi awk komutu:

cat <file> | awk '{if (NR>=7000) print}'

2
Bu komutu diğer sınırlarla kullanabilirsiniz. Örnek olarak: cat messages | awk '{if (NR>=7000 && NR <7003) print}'sadece 7000, 7001 ve 7002 sıralarını gösterir.
Gefolge

-1

2
büyüleyici bağlantı, ancak gerçekten bu soru için geçerli herhangi bir bilgi vermez ve tailöneriniz haftalar önce kabul edilen ve diğer cevaplar ile aynıdır. neden göndermeye uğraşmıyorsun?
quix quixote

Bağlantı koptu -...can't find the server at www.scripterworld.com.
Peter Mortensen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.