LINUX.ORG.RU
ФорумAdmin

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


0

1

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

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

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

Андрей.

Ответ на: комментарий от AGUtilities

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

Вообще-то tail главным образом предназначен для работы со строками.

И именно работа со строками была определена в условии ОП.

Вывод отдельных байтов к tail прикручен, как вспомогательная фича, и использовать её в качестве главного аргумента не вполне корректно.

Ты попросил вывести 5 байтов или 2.5 символа, tail именно так и вывел, причём два последних символа вывел правильно.

в отличии от, на пример, sed.

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

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

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

Интересно. А для работы с чем же позиционируется инструмент tail? Текст состоит из строк, строки состоят из символов. tail позиционирован на уровне строк (хотя в нем есть возможность опуститься на уровень символов (если в ключе -c указывать чётное количество байтов). Поэтому tail — инструмент для работы именно с текстом. Если по-твоему это не так, то объясни, для работы с чем предназначен tail.

хотя в данной теме это не важно.

Да нет, в данной теме это как раз важно. Именно tail позволяет решить задачу поставленную в ОП, хотя, разумеется, это не единственный способ её решения.

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

Просто необоснованно заявил, что tail неправильно работает с юникодом. А tail'у по большому счёту плевать на юникод, это не его уровень. Его главная задача — обрабатывать строки (см.выше). А из каких символов состоят строки при решении этой задачи — вот это как раз не важно.

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

мой вопрос был: «поддерживает ли tail и head юникод?» не смотря на то что вопрос был изначально не корректен, ответ на него последовал именно «Да». так что не нужно тут распинаться, драку вы уже проиграли своим комментарием «Наглое враньё.»

на счёт едиема: тем, кто не осилил юникод в своей системе, предпочитаю не отвечать, потому что это заранее флуд.

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

так что не нужно тут распинаться, драку вы уже проиграли своим комментарием «Наглое враньё.»

Драки не было. Было обсуждение. И целью его не являлось выявление «выигравших»/«проигравших».

мой вопрос был: «поддерживает ли tail и head юникод?»

Ещё раз: tail'у и head'у по барабану кодировка символов, они не для этого предназначены, а для обработки текстовых строк, о чём и шла речь в задаче ОП.

Почему-то ты этого понять не можешь или не хочешь. Или просто выкручиваешься из неприятной ситуации (что тоже можно понять: юноши с горящими глазами очень не любят «проигрывать» на ЛОРе.

Ладно, хорошо, я «проиграл драку». Запиши себе победное очко, выпей пивка по этому поводу. Тем не менее, советую поглубже въехать в концепцию обработки текста в Unix-like системах. Тебе же польза будет.

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

tail и head поддерживают работу с юникодом, так как они не рассматривают вопросы кодировок.

sed, bash поддерживают.

Так что 75% высосано даже не из пальца.

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

Противопоказаний нет. Но вот, например, вывод строк с миллионной до десятимиллионной через хеды и тейлы мягко говоря лучше не делать.

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

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

С этим соглашусь. Но в ОП задачка попроще была. Поэтому первым на ум приходит именно tail.

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

PS: А ТС таки молодец. :) Вона здесь какие вопросы всплывают в ходе обсуждения.

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

пример с -c был приведён для того чтобы проиллюстрировать, что

тебе просто захотелось пофлудить.

надо резать символы из строк — используй cut. unix-way однако.

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

Угу. Сейчас он тебе ответит, что cut тоже «не позиционируется как инструмент для работы с текстом» (как про tail ляпнул). То ли каша у человека в голове, то ли излишняя упёртость одолевает. :)

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

Ну как, диагноз ты сам поставил, она поехала... :)

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

«кто выиграл»

Ну это я предполагаю, про что анекдот. Если последняя фраза «И не выиграл, а проиграл», то я должно быть угадал. :)

«дочки матери»

А вот этот что-то никак не идентифицируется. Не вспоминается.

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

Дочь вернулась от подружки, папа спрашивает: «чем занимались?» — «играли» — «во что?» — «в дочки матери» — «и кто выиграл?».

Такой маленький шедевр... :)

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

А-а, теперь вспомнил. :) Уже и не вспомню, когда в последний раз его слышал.

Но здесь немножко другое. Некоторые персонажи на ЛОРе (и не только) когда вступают в обсуждение, главной и первоочередной задачей своей считают «непременно победить любой ценой». Для них это даже не просто обсуждение, это «драка, битва». И «проиграть» для них означает личную трагедию, сами себе такого простить не могут. Вот и вертятся, как угри на сковородке, до последнего.

Ну, передёрнул, не туда заехал, ошибся, с кем не бывает. Спокойно скажи, что был не прав, в этом нет ничего позорного. Так нет же...

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

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

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

Именно это. Этот анекдот как раз отражает это отношение.

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

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

точно также, как ваш «однозначный» ответ «нагло врёт» о том что tail и head не поддерживают юникод, в то время как я давно уже признал свой офтоп по теме несколькими постами выше. видимо вы просто не удосужились прочитать.

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

на счёт «непременно победить любой ценой»: раз уж вы так глупо смели утверждать что tail и head поддерживают юникод, и также глупо сдулись, абсолютно не обязывает вас разводить флуд и травить сказки на тему спорта.

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

Ладно, я для тебя не авторитетный источник, так ты хоть мнения других почитай. Ты здесь один продолжаешь тупо долдонить одно и то же, хотя тебе несколько человек объяснили разными словами и способами. И, кстати, все остальные вопросы ты благополучно игнорируешь, сосредоточившись на одной-единственной фразе. Впрочем, такая тактика меня отнюдь не удивляет, на ней можно держаться весьма продолжительное время.

вы так глупо смели утверждать что tail и head поддерживают юникод, и также глупо сдулись

Вот-вот. Именно это и подтверждает твоё детское стремление самоутвердиться и «победить» в «драке».

Кстати, и о «драке». Выделяй каким угодно шрифтом, но слово сказано. Не хочешь, чтобы его превратно истолковали, — лучше вообще не употребляй. Найди синоним.

И о «глупости». В чужих глазах соринки видишь, в своём же бревна не замечаешь. Плотность глупостей, сказанных тобою в этом треде, достаточно велика. И ты уже продемонстрировал своё недостаточное понимание принципов unix-way.

Твоё «признание офтопа» (как тщательно ты избегаешь слов «ошибка», «неправота», заменяя их удобными и комфортными эвфемизмами!) я прочёл, но после этого сделанного вскользь якобы признания ты вновь пошёл в контратаку, сказав при этом очередную глупость.

И последнее: я уже не в первый раз замечаю вот такое твое поведение, такую тактику, такую линию в обсуждениях, что даёт мне основание составить некоторое представление о тебе. И я его составил. Понимаю, что тебе наплевать и на моё мнение и на меня, но это представление чрезвычайно неприятное для тебя. Озвучивать его я не буду, так как не вижу смысла. Да и достаточно просто прочесть весь тред, и осмелюсь предположить, что большинство читателей присоединятся к моей точке зрения. Но даже если это будет не так, то я своего мнения не изменю. Примите и проч.

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

да. тут ты абсолютно прав - мне абсолютно до лампочки чьё либо мнение обо мне.

я буду и дальше придерживаться мнения, что инструменты, явно не умеющие юникод(coreutils, да и bash, который до сих пор хреново работает с utf-8, тоже) - не должны применяться к текстовым данным. в этом случае мне тоже не интересно чьё-либо мнение.

кому не нравится мой способ изложения мыслей, могут смело добавить меня в игнор (да-да, это мне тоже до лампочки). нашёлся цаца DeVliegendeHollander.

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

Как-то на одном из форумов по линукс тематике мне попался раздел «Для новичков», где были описаны книги, которые стоит посмотреть перед тем, как задавать вопросы. Сейчас уже не вспомню точных названий, но там как раз были вещи типа «Основы командной строки UNIX» и т.п. Так как на данный момент я могу найти нужные мне команды и без таких книг, ссылок и списков не дам. Но, думаю, при желании можно нагуглить. Тем более, что у меня тогда был диалапный интернет и поиском пользоваться было намного сложнее. Так что не стоит оправдывать ТС за незнание элементарных команд.

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

гы, знаешь как забавно для англоговорящих звучит наше слово «факт» ;)

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