Отправляет email-рассылки с помощью сервиса Sendsay

Вставить один текстовый файл в другой

Здравствуйте. Всех с профессиональным праздником сисадминов.

Имеется один большой текстовый файл (100 Мб). Его нужно вставить в другой.
Но файл настолько большой, что даже emacs долго думает при выделении всего
текста в нем, думает... думает... своп заполняется и вырубается.

Не подскажете, возможно ли проделать эту процедуру в консоли без всех этих
copy-paste?

Спасибо

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 34630; Возраст листа: 1828; Участников: 1497
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/765139

Ответить   Sat, 26 Jul 2008 11:55:52 +0600 (#765139)

 

Ответы:

Роман:

Ммм... Я чего-то не понимаю, или
$ cat big_file >> file
?

Ответить   Roman I Khimov Sat, 26 Jul 2008 10:40:58 +0400 (#765150)

 

В сообщении от Суббота 26 июля 2008 Roman I Khimov написал(a):

Нужно вставить файл после определенной строки в другом. Это sed'ом можно, но
я
так и не вкурил манов, причем пытаюсь сделать это не один месяц. Не доходит и
все тут... :)

Спасибо.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 34632; Возраст листа: 1828; Участников: 1496
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/765157

Ответить   Sat, 26 Jul 2008 13:01:45 +0600 (#765157)

 

Роман:

А. Ну, с sed-ом не заморачиваясь можно попробовать так:
$ head -n $NUM file > out
$ cat big_file >> out
$ tail -n +$NUME >> out

$NUM - номер строчки, после которой и надо вставить.

Наверняка можно красивше, одной командой и т.п.

Ответить   Roman I Khimov Sat, 26 Jul 2008 11:25:49 +0400 (#765162)

 

Roman I Khimov:

А если точнее, то tail понадобится не $NUM, а ($NUM + 1)

Ответить   Roman I Khimov Sat, 26 Jul 2008 11:29:45 +0400 (#765164)

 

В сообщении от Суббота 26 июля 2008 Roman I Khimov написал(a):

Ага, спасибо огромное. :)

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 34635; Возраст листа: 1828; Участников: 1496
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/765165

Ответить   Sat, 26 Jul 2008 13:24:02 +0600 (#765165)

 

В Sat, 26 Jul 2008 13:01:45 +0600
Роман <shipilovr***@m*****.ru> пишет:

А если что-то вроде:

head -n <к-во первых строк> file1.txt > file_itog.txt
cat file2.txt >> file_itog.txt
tail -n <к-во остатка строк> file1.txt >> file_itog.txt

В сообщении от Понедельник 28 июля 2008 Крохин Анатолий Александрович
написал(a):

Да, это работает, но вы немного запоздали. Мне уже подсказали здесь так
сделать.

Спасибо. Тему считаю закрытой.

А если знаете более менее внятное руководство по sed, буду признатален.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 34653; Возраст листа: 1830; Участников: 1495
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/765641

Ответить   Mon, 28 Jul 2008 12:30:04 +0600 (#765641)

 

Роман wrote:

http://azarkevich.blogspot.com/2008/03/sed.html

Для этого достаточно было в Google набрать sed руководство.

Ответить   Mon, 28 Jul 2008 12:12:04 +0400 (#765650)

 

В сообщении от Понедельник 28 июля 2008 Eugene Saenko написал(a):

Набирал, месяца 4 назад, когда была крайняя необходимость. Не нашел ничего
вразумительного, что собственно пишет и автор статьи:
"Почему-то поголовно все руководства по sed, которые мне попадались на глаза,
являлись простым переводом соответствующей страницы MAN руководства."

Я не предположил, что появился энтузиаст, сделавший это полезное дело.

А вот тыкать гуглом не очень вежливо. Ну сложно ответить, не отвечали бы.

Спасибо за наводку :)

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 34656; Возраст листа: 1830; Участников: 1495
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/765677

Ответить   Mon, 28 Jul 2008 15:34:10 +0600 (#765677)

 

Я не хотел Вас обидеть. Если это выглядит как обида, прошу прощения.
Запрос Гуглу я привел в ответе потому, что кроме приведенного адреса в
гуглевом ответе было еще несколько полезных ссылок.

Ответить   Mon, 28 Jul 2008 16:38:17 +0400 (#765697)

 

В сообщении от 28 июля 2008 Роман написал(a):

info page на него
Правда она несколько мутная, но - такой же мутный и сам sed

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 34655; Возраст листа: 1830; Участников: 1495
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/765662

Ответить   Mon, 28 Jul 2008 12:44:50 +0400 (#765662)

 

В Sat, 26 Jul 2008 13:01:45 +0600
Роман <shipilovr***@m*****.ru> пишет:

А если что-то вроде:

head -n <к-во первых строк> file1.txt > file_itog.txt
cat file2.txt >> file_itog.txt
tail -n <к-во остатка строк> file1.txt >> file_itog.txt