LINUX.ORG.RU
ФорумAdmin

Как скопировать строки с конца огромного текстового файла?


0

1

Приветствую вас.

Любезные, подскажите, как скопировать строки с конца огромного текстового файлав отдельный фйал. Или как удалить все строки сверху? Или как разбить файл на две не равные части (как бинарный) ?

Файл логов 2 гб. Надо скопировать в отдельный файл примерно 5% строк с конца файла. os linux.

Андрей.

на крайний случай всегда есть dd

srg666
()
Ответ на: комментарий от Eddy_Em

А вот интересно, если я сейчас тут же рядышком создам тему «Как скопировать строки с начала огромного текстового файла?», то мне так же бережно и тщательно будут отвечать, или просто пошлют нахер?

PS: ...и это в форуме Admin...ой-ёй-ёй...до чего докатились.

DeVliegendeHollander ★★
()
Ответ на: комментарий от DeVliegendeHollander

А вот интересно, если я сейчас тут же рядышком создам тему «Как скопировать строки с начала огромного текстового файла?», то мне так же бережно и тщательно будут отвечать, или просто пошлют нахер?

Тебя-то пошлют, ясен пень ☺

А у меня чего-то после тяжелого трудодня весь жир куда-то подевался…

PS: ...и это в форуме Admin..

Хм, не глянул даже. Думал, Talks…

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от sin_a

Немного не так. Кто-то приучен думать и искать, а кто-то ни думать, ни читать не хочет. Когда я осваивал шелл, я остервенело рылся в man-ах, откапывая требуемую мне функциональную возможность, а если не находил, то клепал ручками.

А сейчас ещё и гугл есть, и учебники/справочники (тот же ABS).

DeVliegendeHollander ★★
()
Ответ на: комментарий от Eddy_Em

Да просто головой поработать немного надо. Мозами пошевелить:

$ apropos "last lines of file"
last lines of file: nothing appropriate
$ apropos "last line of file"
last line of file: nothing appropriate
$ apropos "last part of file"
tail []              (1)  - output the last part of files
$ 

На это потребовалось около 2 минут. Чего проще?

DeVliegendeHollander ★★
()
Ответ на: комментарий от DeVliegendeHollander

Вот меня иногда спрашивают, а где можно прочитать про все эти ваши команды в страшном чёрном окошке. И вот тут я и не знаю что ответить.

sin_a ★★★★★
()
Ответ на: комментарий от DeVliegendeHollander
apropos file|wc -l
1745

ГЫ ☺

sin_a

Вот меня иногда спрашивают, а где можно прочитать про все эти ваши команды в страшном чёрном окошке. И вот тут я и не знаю что ответить.

Можно сказать: «FAQ You», или «The Linux Bible». А еще лучше так: «English first»

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em
apropos file|wc -l
1745

ГЫ ☺

Так ведь я не зря про «включение мозгов в работу сказал». :)

А по такому запросу в гугле ещё три-четыре нолика справа к числу добавятся. И можно смело заявлять: «гуглил, но ничо не нашёл». :)

DeVliegendeHollander ★★
()
Ответ на: комментарий от DeVliegendeHollander

Ну вот этот апропос, к примеру, откуда я про него должен был узнать? Впрочем, ты это ещё возможно лучше меня понимаешь...

sin_a ★★★★★
()
Ответ на: комментарий от Eddy_Em

Здесь я хотел написать «илита», но передумал.. стоп, OH SHI~~

sin_a ★★★★★
()
Ответ на: комментарий от sin_a

Нет, не понимаю.

«Уж сколько раз твердили миру»: начинаешь осваивать линукс, готовься долго и упорно читать man-ы. С чего начать? Естественно, с man man. Там есть такие строчки:

-k     Equivalent to apropos.
...
SEE ALSO
       apropos(1), whatis(1), less(1), groff(1), man.config(5).

Потом man bash etc etc

Думаю, дальше объяснять не стоит.

А если кто не желает читать man-ы («не царское это дело», мол), тому остаётся только открыть свой файл в ms word, выделить мышкой требуемые строки и щёлкнуть по кнопочке «Удалить». Так, кажется, это «там у них» делается?

DeVliegendeHollander ★★
()
Ответ на: комментарий от Eddy_Em

Ха-ха, действительно:

Помогите нчинающему...
> linux_user (31.10.2007 14:52:17)

Шёл 2012-ый год. Такой ржаки даже в толксах сложно откопать, а тут такое перед сном.

Jurik_Phys ★★★★★
()

> как скопировать строки с конца огромного текстового файлав отдельный фйал.

man tail

> как удалить все строки сверху?

man sed

> Или как разбить файл на две не равные части (как бинарный) ?

man stat
man dd
man bash

arsi ★★★★★
()
Ответ на: комментарий от Jurik_Phys

Итить-колотить! Человек и разговаривать-то быстрее учится…

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от DeVliegendeHollander

У ТСа, похоже, эта прокладка совсем прохудившаяся.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от aedeph_

огромного текстового файла

$ ls -l
итого 948740
-rw-rw-r--. 1 alf alf 970551720 Окт  2 02:04 huge.txt
$ time tail huge.txt 
    [Thompson 78] Thompson,  K.,  "UNIX  Implementation",  The  Bell  System
          Technical Journal, Vol. 57, No. 6, Part 2, July- August, 1978, pp.
          1931-1946.
    [Weinberger  84] Weinberger, P.J., "Cheap Dynamic Instruction Counting",
          The AT&T Bell Laboratories Technical Journal, Vol. 63, No. 6, Part
          2, October 1984, pp. 1815-1826.
          "VM/370 Asymmetric Multiprocessing", IBM Systems Journal, Vol. 18,
          No. 1, 1979, pp. 47-70.
    [Holt  83]  Holt,  R.C.,  Concurrent Euclid, the UNIX System, and Tunis,
          Addison-Wesley, Reading, MA, 1983.

real	0m0.022s
user	0m0.000s
sys	0m0.002s
$ 

И какие же противопоказания использования tail для «огромных текстовых файлов»?

DeVliegendeHollander ★★
()
Ответ на: комментарий от aedeph_

а юникод они умеют?

Да.

будем справедливее

tail, head - юникод не умеют

sed - да, умеет

bash - уж лучше питоном воспользоваться

итого: ты не прав на 75%

AGUtilities ★★★
()
Ответ на: комментарий от DeVliegendeHollander

части из head.c и tail.c отвечающие за юникод или вайдстринг в студию

AGUtilities ★★★
()
Ответ на: комментарий от AGUtilities
$ echo 'АГУтилитез' > test.txt
$ echo 'нагло врёт' >> test.txt
$ echo 'всё работает' >> test.txt
$ echo 'в юникоде' >> test.txt
$ head -2 test.txt
АГУтилитез
нагло врёт
$ tail -2 test.txt 
всё работает
в юникоде
$ 
DeVliegendeHollander ★★
()
Ответ на: комментарий от AGUtilities
$ echo -n 'абвгдеёжз' > 1234
$ tail -c 18 1234
абвгдеёжз$ tail -c 16 1234
бвгдеёжз$ tail -c 14 1234
вгдеёжз$ tail -c 12 1234
гдеёжз$ tail -c 10 1234
деёжз$ tail -c 8 1234
еёжз$ tail -c 6 1234
ёжз$ tail -c 4 1234
жз$ tail -c 2 1234
з$ 

Где так ловко передёргивать научились, товарищ шулер?

И подгонку результатов эксперимента под собственные условия ты тоже освоил неплохо.

Если резать кириллические символы юникода пополам, то можно доказать, что ни одна консольная программа не умеет работать с юникодом.

DeVliegendeHollander ★★
()
Ответ на: комментарий от DeVliegendeHollander

пример с -c был приведён для того чтобы проиллюстрировать, что tail может работать только с байтами(что вы ещё раз подтвердили этим примером), в отличии от, на пример, sed.

AGUtilities ★★★
()
Последнее исправление: AGUtilities (всего исправлений: 1)
Ответ на: комментарий от DeVliegendeHollander

я признаю, что ушёл в офтоп с вопросом о юникоде.

однако и tail не позиционируется как инструмент для работы с текстом. хотя в данной теме это не важно.

AGUtilities ★★★
()
Ответ на: комментарий от sin_a

Ну вот этот апропос, к примеру, откуда я про него должен был узнать?

На самом деле, как я помню есть некий встроенный cheatsheet, где кратко описано назначение основных команд.
Но не помню как называется.
Кто вспомнит - тому пироженку

zolden ★★★★★
()
Ответ на: комментарий от zolden

мм...видимо это был man intro, но в детстве он мне показался более полезным

zolden ★★★★★
()
Ответ на: комментарий от DeVliegendeHollander

В общем, да. Но было бы неплохо если бы существовало небольшая книжка по основным командам, небольшой обзор. Для тех, кто просто использует печатную машинку, но интересуется понемножку. Мне такая неизвестна.

sin_a ★★★★★
()
Ответ на: комментарий от Jurik_Phys

Сначала я хотел заподозрить что это из тех учётных записей, которыми тут фарцевали надысь, но потом посмотрел на ссылку в профиле.

sin_a ★★★★★
()
Ответ на: комментарий от sin_a

Но было бы неплохо если бы существовало небольшая книжка по основным командам, небольшой обзор

Есть же всякие читшиты и хэндбуки, тысячи их и даже на русском есть.
Да и вики тут есть...но никто не читает

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