LINUX.ORG.RU

Ответ на: Re: Вывести несколько строк файла от anonymous

Re: Вывести несколько строк файла

Если файл имеет строки произвольной длины то для того чтоб определить байт где начинается 99 строка в любом случае придётся читать и анализировать весь файл до неё.
Чтоб не читать файл после конца нужной области:

perl -ne 'print if 81..90; exit if 90..90'<file.txt

(perl не знаю, за кривой код не пинать)

Если длина строк в байтах фиксирована то можно вырезать нужный кусок с помощью dd

GPFault ★★
()
Ответ на: Re: Вывести несколько строк файла от GPFault

Re: Вывести несколько строк файла

А интересно, а можно ли к примеру вывести все до конца файла начиная со строки 2182? что это за конструкция 90..90? Можно ли там как-то применить > < и к чему?

anonymous
()
Ответ на: Re: Вывести несколько строк файла от anonymous

Re: Вывести несколько строк файла

А интересно, а можно ли к примеру вывести все до конца файла начиная со строки 2182?

perl -ne 'print if !(1..2181)'<file.txt

Но от тормозов при анализе строк до 2181 это естественно не спасёт

А лучше пусть ответит кто-нибудь кто знает перл. Я конструкцию m..n в булевском смысле впервые увидел в этом топике

GPFault ★★
()
Ответ на: Re: Вывести несколько строк файла от Deleted

Re: Вывести несколько строк файла

sed -n '99,181p; 182q' big_file
1. -n нет output
2. с 99 по 181 выдавать строки на stdout
3. 182 строка quit (не читать файл до конца)

sdio ★★★★★
()
Ответ на: Re: Вывести несколько строк файла от Deleted

Re: Вывести несколько строк файла

$ time head -n10181 access_log | tail -n10000 >/dev/null

real    0m0.025s
user    0m0.012s
sys     0m0.013s

$ time sed -n '10000,10181p; 10182q' access_log >/dev/null

real    0m0.015s
user    0m0.012s
sys     0m0.003s

$ ls -lh access_log
[skip]     664M  access_log

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.