Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Unix-системы Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Как из файла взять первые две строки и записать в другой файл?  [new]
x17.mstu
Member

Откуда:
Сообщений: 226
Как из файла взять первые две строки и записать в другой файл?
11 окт 18, 12:59    [21701498]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
miksoft
Member

Откуда:
Сообщений: 37157
grep
11 окт 18, 13:02    [21701503]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 46412

head

Posted via ActualForum NNTP Server 1.5

11 окт 18, 13:12    [21701518]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
bga83
Member

Откуда: Город герой Ленинград
Сообщений: 30263
head -n 2 file1 > file2

а еще есть vi
11 окт 18, 14:12    [21701623]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
ShSerge
Member

Откуда: ʚонɔ dиw
Сообщений: 24849
awk или gawk
Специально для таких штучек предназначен.
12 окт 18, 18:31    [21702850]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
vkle
Member

Откуда: Самара
Сообщений: 14282
ShSerge
awk или gawk
Специально для таких штучек предназначен.
Он, конечно, умеет это делать. Однако, думается, head гораздо более для таких.
А так то ещё sed умеет решать оную задачу. На мой взгляд, он несколько более универсален (например, можно взять с третьей по пятую строчки).
12 окт 18, 18:45    [21702860]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
ShSerge
Member

Откуда: ʚонɔ dиw
Сообщений: 24849
sed вообще вне конкуренции. Похоже, таки, да.
12 окт 18, 21:16    [21702964]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
volodin661
Member

Откуда: Внутренняя Монголия
Сообщений: 398
ShSerge,
при обработке текста вне конкуренции текстовый редактор.
11 ноя 18, 04:46    [21730796]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
landy
Member

Откуда:
Сообщений: 1223
при обработке текста вне конкуренции текстовый редактор.

sed (от англ. Stream EDitor) — потоковый текстовый редактор (а также язык программирования)
19 ноя 18, 08:53    [21737765]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
volodin661
Member

Откуда: Внутренняя Монголия
Сообщений: 398
Открыл мне глаза. Как же я раньше жил?

ОК, давай посоревнуемся.

Обработка текста. SED vs VIM

среда UNIX ( Linux, MacOS, Solaris, AIX, FreeBSD, HP-UX )

Готов ?
26 ноя 18, 03:00    [21744428]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
Alex URS
Member

Откуда: 0f17
Сообщений: 184
volodin661
Открыл мне глаза. Как же я раньше жил?

ОК, давай посоревнуемся.

Обработка текста. SED vs VIM

среда UNIX ( Linux, MacOS, Solaris, AIX, FreeBSD, HP-UX )

Готов ?


я знаю карате, дзюдо, таеквондо, и ещё кучу страшных слов...(с)

ты что с чем сравнить пытаешься?
vi - это экранный редактор
sed - это потоковый редактор

sed уже только по определению работает, выполняя только один проход по входным данным, и, следовательно, более эффективен.
11 дек 18, 18:25    [21760682]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
volodin661
Member

Откуда: Внутренняя Монголия
Сообщений: 398
Alex URS
ты что с чем сравнить пытаешься?


Сравнить инструменты для обработки текста.
12 дек 18, 13:13    [21761425]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
Alex URS
Member

Откуда: 0f17
Сообщений: 184
volodin661
Alex URS
ты что с чем сравнить пытаешься?


Сравнить инструменты для обработки текста.


потоковый и экранный?

"-Дабы дурь каждого всякому видна была." Пётр Первый
12 дек 18, 14:02    [21761533]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
volodin661
Member

Откуда: Внутренняя Монголия
Сообщений: 398
Alex URS,
пусть слово 'экранный' тебя не смущает,
у Vim есть всё необходимое для автоматизированной обработки текстовой ( а если надо, то и бинарной ) информации.
12 дек 18, 21:04    [21762138]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
Alex URS
Member

Откуда: 0f17
Сообщений: 184
volodin661
Alex URS,
пусть слово 'экранный' тебя не смущает,
у Vim есть всё необходимое для автоматизированной обработки текстовой ( а если надо, то и бинарной ) информации.

меня оно не смущает, я очень люблю vim, но твоё невежество ни в какие ворота....
прекрасно, что есть всё необходимое для "экранных" манипуляций, но ещё есть и слово потоковый...
вообще не стоит ровнять хрен с пальцем, делать то или иное нужно тем, что для этого предназначено, а не через "ж"
RTFM
13 дек 18, 08:35    [21762377]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
volodin661
Member

Откуда: Внутренняя Монголия
Сообщений: 398
Как же мне повезло, я наконец-то наткнулся на настоящего профессионала.
Думаю, тебе не составит доказать на деле преимущества потокового ( специально уточнил, чтобы сделать тебе приятно )
редактора sed перед экранным ( и это слово опять для тебя ) vim при обработке текстовой информации.
Можешь даже взять в помощники Петра The First.
Согласен ?
13 дек 18, 09:57    [21762481]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
Alex URS
Member

Откуда: 0f17
Сообщений: 184
volodin661
Как же мне повезло, я наконец-то наткнулся на настоящего профессионала.
Думаю, тебе не составит доказать на деле преимущества потокового ( специально уточнил, чтобы сделать тебе приятно )
редактора sed перед экранным ( и это слово опять для тебя ) vim при обработке текстовой информации.
Можешь даже взять в помощники Петра The First.
Согласен ?

чтото здесь доказывать не вижу смысла
как минимум скорость обработки 1ТБ файлов
отправлюка я тебя в RTFM и STFM в помощь

в следующий раз, пере тем как позориться, хотя бы вникни в предметную суть
13 дек 18, 10:18    [21762509]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
volodin661
Member

Откуда: Внутренняя Монголия
Сообщений: 398
Alex URS
чтото здесь доказывать не вижу смысла



А ведь я не ошибся, профессионал попался действительно большой !

И не обосрался он здесь, как могло бы кому-то показаться,
а просто уровень и в самом деле мелковат.
13 дек 18, 11:43    [21762675]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
Лысый дядька
Member [заблокирован]

Откуда:
Сообщений: 138
volodin661
Alex URS
чтото здесь доказывать не вижу смысла



А ведь я не ошибся, профессионал попался действительно большой !

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


Это что за поток сознания? Зачем ты выделил жирным слово "здесь"? Что именно тебе непонятно в различиях между текстовым редактором и преобразователем потока данных?
13 дек 18, 11:50    [21762690]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
volodin661
Member

Откуда: Внутренняя Монголия
Сообщений: 398
Лысый дядька
Зачем ты выделил жирным слово "здесь"?


Ну а где же мы, дядь ?

Просмотри, дядь, тему с самого начала, где там про потоки и терабайты?

Я даже, чтобы ты своё сознание не утруждал, покажу отправную точку:

изначальное сообщение: "Как из файла взять первые две строки и записать в другой файл?"
появление sed от ShSerge: "sed вообще вне конкуренции. Похоже, таки, да."
моё ответное сообщение: "при обработке текста вне конкуренции текстовый редактор."
13 дек 18, 12:08    [21762729]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
Лысый дядька
Member [заблокирован]

Откуда:
Сообщений: 138
volodin661
Лысый дядька
Зачем ты выделил жирным слово "здесь"?


Ну а где же мы, дядь ?

Просмотри, дядь, тему с самого начала, где там про потоки и терабайты?

Я даже, чтобы ты своё сознание не утруждал, покажу отправную точку:

изначальное сообщение: "Как из файла взять первые две строки и записать в другой файл?"
появление sed от ShSerge: "sed вообще вне конкуренции. Похоже, таки, да."
моё ответное сообщение: "при обработке текста вне конкуренции текстовый редактор."


Твой пассаж про текстовые редакторы не имеет отношения к вопросу топикстартера, в то время как sed, имеет место быть как решение. Попик вовсе не про виндовз, и понятно любому ежу, что автор топика решает какую-то админскую задачу, которую надо решать стандартными средствами командной строки - башем, утилитами, пайпами. И совершенно неуместны здесь отсылки к текстовым редакторам, MS Word - это тоже текстовый редактор, давай начнем троллить (кого вопрос???) и советовать его.
13 дек 18, 12:17    [21762750]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
volodin661
Member

Откуда: Внутренняя Монголия
Сообщений: 398
Я не советовал MS Word, дядь, речь я вёл про vim, будь повнимательней.

Вот почему я должен пересказывать то, что и так уже написано здесь ( в этом топике ) ?

Говорил я про то, что vim обладает достаточным набором средств автоматизированной обработки текста и
может поспорить с sed, а в качестве неголословного аргумента предложил провести серию сравнительных тестов Vim vs Sed
на различных задачах по обработке текстов.


"Как из файла взять первые две строки и записать в другой файл?"

vim -nes -c 1,2 -cq  text.txt > другой.файл
13 дек 18, 12:47    [21762816]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
Alex URS
Member

Откуда: 0f17
Сообщений: 184
volodin661
Я не советовал MS Word, дядь, речь я вёл про vim, будь повнимательней.

Вот почему я должен пересказывать то, что и так уже написано здесь ( в этом топике ) ?

Говорил я про то, что vim обладает достаточным набором средств автоматизированной обработки текста и
может поспорить с sed, а в качестве неголословного аргумента предложил провести серию сравнительных тестов Vim vs Sed
на различных задачах по обработке текстов.


"Как из файла взять первые две строки и записать в другой файл?"

vim -nes -c 1,2 -cq  text.txt > другой.файл


во первых я тебе указал как минимум с чего начать
Alex URS
.
как минимум скорость обработки 1ТБ файлов
..

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


но ты это игнорируешь
не беда, я провёл тест, правда взял файл "всего" 0,5 Гб, и знаешь, угадал, ибо ждать когда отработает твой говнокод устала сама система

# ls
_data_57ss6mqn_1_1
# du _data_57ss6mqn_1_1 
680169372       _data_57ss6mqn_1_1
# echo "date +%H%M%S">run_sed;echo "sed 2q _data_57ss6mqn_1_1 > file_sed">>run_sed;echo "date +%H%M%S">>run_sed
# sh ./run_sed
184459
184459
# cat file_sed | md5sum
d783228b2353207e8ad3306e9c2ecd68  -
# 
# 
# du _data_57ss6mqn_1_1 
680169372       _data_57ss6mqn_1_1
# echo "date +%H%M%S">run_vim;echo "vim -nes -c 1,2 -cq _data_57ss6mqn_1_1 > file_vim">>run_vim;echo "date +%H%M%S">>run_vim
# sh ./run_vim
184459
./run_vim: line 2: 63330 Убито              vim -nes -c 1,2 -cq _data_57ss6mqn_1_1 > file_vim
185039
#


убивает его система, не я, по OOM....
# grep 63330 messages
Dec 13 18:50:37 srv kernel: [63330]     0 63330 11440101 11404237   22324        0             0 vim
Dec 13 18:50:37 srv kernel: Out of memory: Kill process 63330 (vim) score 166 or sacrifice child
Dec 13 18:50:37 srv kernel: Killed process 63330 (vim) total-vm:45760404kB, anon-rss:45616948kB, file-rss:0kB


а вот top когда он работал
# top
top - 18:48:58 up 399 days,  7:15,  5 users,  load average: 4.08, 4.87, 4.71
Tasks: 444 total,   8 running, 434 sleeping,   1 stopped,   1 zombie
Cpu(s): 64.1%us,  0.2%sy,  0.0%ni, 35.7%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  263856708k total, 219493068k used, 44363640k free,    12864k buffers
Swap:  2376956k total,  1188256k used,  1188700k free,   464504k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                                                                                                         
63330           20   0 31.1g  30g 2100 R 99.8  12.3   3:57:19 vim 


жрёт CPU с Mem так не по "децки"

у меня к тебе только один вопрос - ты твердолобый по жизни? или просто позвиздеть охота?
13 дек 18, 19:21    [21763412]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
volodin661
Member

Откуда: Внутренняя Монголия
Сообщений: 398
Alex URS,

твоё перманентное хамство несомненно является признаком большого профессионала,
в противном случае я просто окажусь в затруднительном положении, согласись, зачем бы мне иначе
поддерживать техническую (подчёркиваю) беседу с обычным тупым самовлюблённым хамом ?

Напоминаю тебе, что ты отказался участвовать в серии тестов sed vs vim
и мой vim-однострочник, который ты упоённо схватил и которому скормил гигабайтный файл предназначался для Лысого дяди
в качестве примера того, что vim так же, как и sed, можно использовать в режиме ком. строки вне его экранных возможностей.

Понятно, что режим работы высокоинтеллектуального(*) текстового редактора ( a vim является таковым ) не предназначен по умолчанию к приёму гигабайтных или терабайтных файлов.

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

Для затравки ту же задачу ( записать N строк в другой файл), но для гигабайтных файлов я бы навскидку средствами vim сделал так:

writelines:
#! /usr/bin/env vim -es -u NONE -i NONE --noplugin -n -N  -S

call writefile( readfile( $in, '', $lines), $out )
quit


chmod +x writelines
lines=10 in=text.txt out=text2.txt   time ./writelines


(*) надо отключить swap-файл,
надо отключить undo-буфер,
надо отключить подсветку синтаксиса,
надо заблокировать загрузку плагинов ( а их может быть сотни и тысячи ),
надо отключить инициализационные скрипты ( а в них может быть десяток тысяч строк кода )


Прошу принять во внимание, что кроме обработки гигабайтных потоков есть весьма многочисленные задачи обработки структуированных и неструктуированных текстовых файлов более умеренных размеров ( несколько килобайт, мегабайт или десятков мегабайт )
14 дек 18, 07:34    [21763608]     Ответить | Цитировать Сообщить модератору
 Re: Как из файла взять первые две строки и записать в другой файл?  [new]
Alex URS
Member

Откуда: 0f17
Сообщений: 184
volodin661,

volodin661
call writefile( readfile( $in, '', $lines), $out )
мда..умник....

обосрался один раз, обосрись и второй

# ls
_data_57ss6mqn_1_1
# du _data_57ss6mqn_1_1 
680169372       _data_57ss6mqn_1_1
# echo "#!/bin/env">writelines;echo "vim -es -u NONE -i NONE --noplugin -n -N  -S">>writelines;echo "call writefile( readfile( $in, '', $lines), $out )">>writelines;echo "quit">>writelines
# echo "date +%H%M%S">run;echo "lines=1 in=_data_57ss6mqn_1_1 out=text2.txt   time ./writelines">>run;echo "date +%H%M%S">>run
# sh ./run
094009


запустил в 09:40 и до сих пор процесс не закончен (TIME+ 208:09.33)
не подскажешь, сколько мне ещё ждать? а то мне уже самому интересно
sed сделал эту же задачу "мгновенно"

top -p 24170
top - 13:12:41 up 400 days,  1:34,  5 users,  load average: 5.75, 5.31, 5.20
Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
Cpu(s): 21.1%us,  4.3%sy,  0.0%ni, 74.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  263856708k total, 220873592k used, 42983116k free,   653484k buffers
Swap:  2376956k total,  1178416k used,  1198540k free,   914216k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                                                                                                         
24170           20   0   312    4    0 R 97.9  0.0 208:09.33 writelines


volodin661
Прошу принять во внимание, что кроме обработки гигабайтных потоков есть весьма многочисленные задачи обработки структуированных и неструктуированных текстовых файлов более умеренных размеров ( несколько килобайт, мегабайт или десятков мегабайт )
Здесь какие-то такие эвентуальные рассуждения вряд ли уместны

ты пойми одно - из здесь написавших никто не сетует на то, что vim плохой (в целом), они говорят, что ты лопух и невежда
но для указанной задачи vim не годится как и ты
почему - я тебе привёл 2 примера (твоих же) наглядно "..на деле.."
и дело даже не в объеме файла, есть ещё длина строки....

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

думаю более по этой теме срать тебе в форум нет смысла - сделай тесты у себя, если отработает, тогда и пиши опусы
14 дек 18, 13:36    [21764014]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Unix-системы Ответить