GNU/Linux >> Znalost Linux >  >> Linux

Jak zobrazit určité řádky z textového souboru v Linuxu?

Řešení 1:

sed -n '10000000,10000020p' filename

Mohli byste to trochu urychlit takto:

sed -n '10000000,10000020p; 10000021q' filename

V těchto příkazech volba -n způsobí sed k „potlačení automatického tisku vzorového prostoru“. p příkaz "print[s] aktuální prostor vzoru" a q příkaz "Okamžitě ukončete [s] skript sed bez zpracování dalšího vstupu...“ Citace jsou z sed man stránku.

Mimochodem, váš příkaz

tail -n 10000000 filename | head 10

začíná na desetimiliontém řádku od konce souboru, zatímco váš "střední" příkaz by začínal na deseti milionté od začátku což by bylo ekvivalentní:

head -n 10000010 filename | tail 10

Problém je v tom, že u netříděných souborů s proměnnou délkou řádků bude muset každý proces projít souborem a počítat nové řádky. Neexistuje způsob, jak to zkrátit.

Pokud je však soubor seřazený (například soubor protokolu s časovými razítky) nebo má řádky pevné délky, můžete soubor vyhledávat na základě pozice bajtu. V příkladu souboru protokolu byste mohli několikrát provést binární vyhledávání, jako to dělá můj skript Python zde*. V případě souboru s pevnou délkou záznamu je to opravdu snadné. Stačí hledat linelength * linecount znaků do souboru.

Řešení 2:

Zjistil jsem následující použití sed

sed -n '10000000,+20p'  filename

Doufám, že to bude pro někoho užitečné!

Řešení 3:

Toto je můj první příspěvek zde! Každopádně tohle je snadné. Řekněme, že chcete vytáhnout řádek 8872 ze souboru s názvem file.txt. Zde je návod, jak to udělat:

cat -n soubor.txt | grep '^ *8872'

Nyní je otázkou najít 20 řádků po tomto. Chcete-li toho dosáhnout, musíte provést

cat -n soubor.txt | grep -A 20 '^ *8872'

Pro řádky kolem nebo před viz příznaky -B a -C v manuálu grep.


Linux
  1. Jak přidat text na konec souboru v Linuxu

  2. Jak snadno přidat text na konec souboru v Linuxu

  3. Jak zobrazit konkrétní řádky souboru v příkazovém řádku Linuxu

  1. Jak odstranit více náhodných řádků z textového souboru pomocí Sed?

  2. Jak počítat řádky v souboru v UNIX/Linux

  3. Jak rozeznat binární soubory od textových souborů v linuxu

  1. Jak odstraním nové řádky z textového souboru?

  2. Linux - grep od určitých řádků až do konce souboru

  3. Jak stáhnout soubor z URL v Linuxu