Прочитать файл до определённой строки (Чем?)

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Аватара пользователя
gluk47
Сообщения: 297
Статус: Любитель гвоздей и микроскопов
ОС: Kubuntu 17.10

Прочитать файл до определённой строки

Сообщение gluk47 »

Добрый день всем.

Имеется файл с настройками, например, такой:

Код: Выделить всё

! Кукушка
 кукует
 летает
 птица

! Чайник
 свистит
 стоит
 не птица


Мне нужно добавить данные первого объекта в один файл (путь будет coocoo.rc), данные второго — в teapot.rc.
Как адекватно считать в переменную вот эти данные? (три строки с пробелами впереди):

Код: Выделить всё

 кукует
 летает
 птица


Есть только вариант

Код: Выделить всё

cat rcfile | while IFS= read $line; do
  [[ _"$line" == _ || _"${line:0:1}" == _'!' ]] && break;
  coocooData="$coocooData$line"
done

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

В переменную нужно считать, чтобы потом воспользоваться перлом:

Код: Выделить всё

perl -pi -e "s#customrc#customrc\n\t$coocooData#" "$rcfile"
[gluk47@gluk47-desktop ~]$ ензу куищще
куищще is aliased to `reboot'
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5404
ОС: Gentoo

Re: Прочитать файл до определённой строки

Сообщение /dev/random »

Shell

$ sed '/^! Кукушка$/,${/^$/q}' file1.txt ! Кукушка кукует летает птица

Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Прочитать файл до определённой строки

Сообщение drBatty »

$

doc@bx:~/tests$ cat gluk.txt ! Кукушка кукует летает птица ! Чайник свистит стоит не птица ! test test1 test2 doc@bx:~/tests$ sed -rn '/^!/{n; :l; $p; /\n$/{s///p; q}; N; bl; }' gluk.txt кукует летает птица

http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
gluk47
Сообщения: 297
Статус: Любитель гвоздей и микроскопов
ОС: Kubuntu 17.10

Re: Прочитать файл до определённой строки

Сообщение gluk47 »

/dev/random писал(а):
19.11.2010 14:10

Shell

$ sed '/^! Кукушка$/,${/^$/q}' file1.txt ! Кукушка кукует летает птица



Здорово, спасибо!

А как прочитать данные второго объекта?
Считать весь файл в переменную (благо конкретно в этом примере он точно небольшой) и sed'ом отрезать данные первого? Или…?
[gluk47@gluk47-desktop ~]$ ензу куищще
куищще is aliased to `reboot'
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5404
ОС: Gentoo

Re: Прочитать файл до определённой строки

Сообщение /dev/random »

gluk47 писал(а):
19.11.2010 14:23
А как прочитать данные второго объекта?

$ sed '/^! Чайник$/,${/^$/q}' file1.txt
Да, сразу предупреждаю: мой вариант на отступы не смотрит, разделителем блоков он считает пустую строку.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Прочитать файл до определённой строки

Сообщение drBatty »

$

doc@bx:~/tests$ sed -rn '/^$/{H; x; /\n{1}/{:l; n; p; bl; }; x}' gluk.txt ! Чайник свистит стоит не птица ! test test1 test2 doc@bx:~/tests$ sed -rn '/^$/{H; x; /\n{2}/{:l; n; p; bl; }; x}' gluk.txt ! test test1 test2 doc@bx:~/tests$ sed -rn '/^$/{H; x; /\n{3}/{:l; n; p; bl; }; x}' gluk.txt doc@bx:~/tests$



тема раскрыта?

gluk47 писал(а):
19.11.2010 13:53
В переменную нужно считать, чтобы потом воспользоваться перлом:


Использовать перловку для выполнения одной команды???? Добавьте её в мой однострок


/dev/random писал(а):
19.11.2010 14:28
Да, сразу предупреждаю: мой вариант на отступы не смотрит, разделителем блоков он считает пустую строку.

мой тоже
строка с пробелом внутри не пустая
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
gluk47
Сообщения: 297
Статус: Любитель гвоздей и микроскопов
ОС: Kubuntu 17.10

Re: Прочитать файл до определённой строки

Сообщение gluk47 »

/dev/random писал(а):
19.11.2010 14:28
gluk47 писал(а):
19.11.2010 14:23
А как прочитать данные второго объекта?

$ sed '/^! Чайник$/,${/^$/q}' file1.txt
Да, сразу предупреждаю: мой вариант на отступы не смотрит, разделителем блоков он считает пустую строку.


Это я первым делом попробовал) Не работает… я пока, к сожалению, до этого места мануала sed'а не добрался, так что не понимаю, почему)
А про пустую строку я понял, да, отличный вариант в данном случае.


drBatty писал(а):
19.11.2010 14:34
...
тема раскрыта?

Использовать перловку для выполнения одной команды???? Добавьте её в мой однострок


Раскрыта :) Спасибо)
Я ж честно предупредил слева под фотографией про гвозди и микроскопы :) Как я ни пытаюсь вылечить это чтением мануалов и примеров :).
[gluk47@gluk47-desktop ~]$ ензу куищще
куищще is aliased to `reboot'
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Прочитать файл до определённой строки

Сообщение drBatty »

УМВР

$

doc@bx:~/tests$ sed -rn '/^!/{n; :l; $p; /\n$/{s///p; q}; N; bl; }' gluk.txt кукует летает птица doc@bx:~/tests$ sed -rn '/^$/{H; x; /\n{2}/{:l; n; p; bl; }; x}' gluk.txt |sed -rn '/^!/{n; :l; $p; /\n$/{s///p; q}; N; bl; }' test1 test2 doc@bx:~/tests$ sed -rn '/^$/{H; x; /\n{1}/{:l; n; p; bl; }; x}' gluk.txt |sed -rn '/^!/{n; :l; $p; /\n$/{s///p; q}; N; bl; }' свистит стоит не птица

http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: Прочитать файл до определённой строки

Сообщение Goodvin »

gluk47 писал(а):
19.11.2010 13:53
Добрый день всем.

Имеется файл с настройками, например, такой:

Код: Выделить всё

! Кукушка
 кукует
 летает
 птица

! Чайник
 свистит
 стоит
 не птица


Мне нужно добавить данные первого объекта в один файл (путь будет coocoo.rc), данные второго — в teapot.rc.
Как адекватно считать в переменную вот эти данные? (три строки с пробелами впереди):

Код: Выделить всё

 кукует
 летает
 птица


111111 - файл, содержащий текст

Код: Выделить всё

! Кукушка
 кукует
 летает
 птица

! Чайник
 свистит
 стоит
 не птица


Вот две команды, решающие Вашу задачу:

Код: Выделить всё

cat 111111 | head -n 4 | tail -n 3
кукует
летает
птица

Код: Выделить всё

cat 111111 | tail -n 4
свистит
стоит
не птица
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Прочитать файл до определённой строки

Сообщение drBatty »

gluk47 писал(а):
19.11.2010 14:35
sed '/^! Чайник$/,${/^$/q}' file1.txt

просто sed для каждой строки выполняет скрипт.
тут если выполняется первое условие, то не выполняется второе. Потому жрать строки так просто не получается, нужно сделать цикл внутри скобок:

Код: Выделить всё

doc@bx:~/tests$ cat gluk.sed
#!/bin/sed -rnf

# начинаем цикл, со строки в начале которой "!"
/^!/{
    # загрузка сл. строки
    n
    :l
        # это условие сработает только со второй интерации
        # если если сразу за концом строки идёт конец буфера,
        /\n$/{
            # значит строка была пустой. Мы удаляем её и выходим
            s///p
            q
        }
        # если сл. строка последняя
        ${
            # печатаем ее и выходим
            p
            q
        }
        # иначе добавим следующую строчку, и продолжим
        N
    bl
}
doc@bx:~/tests$ ./gluk.sed gluk.txt
кукует
летает
птица
doc@bx:~/tests$

кстати, в одностроке баг - проявляется, если файл кончается пустой строкой
исправил в этом скрипте
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5404
ОС: Gentoo

Re: Прочитать файл до определённой строки

Сообщение /dev/random »

gluk47 писал(а):
19.11.2010 14:35
/dev/random писал(а):
19.11.2010 14:28
$ sed '/^! Чайник$/,${/^$/q}' file1.txt

Не работает…

Прошу прощения, не проверил перед отправкой, надо вот так:
$ sed -n '/^! Чайник$/,${/^$/q;p}' file1.txt
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Прочитать файл до определённой строки

Сообщение drBatty »

Goodvin

ну так и я могу:

Shell

$ sed '2,4!d' gluk.txt кукует летает птица



(:
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Прочитать файл до определённой строки

Сообщение drBatty »

/dev/random
у меня не работает...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5404
ОС: Gentoo

Re: Прочитать файл до определённой строки

Сообщение /dev/random »

drBatty писал(а):
19.11.2010 15:14
/dev/random
у меня не работает...

"не работает" - что получается?
Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: Прочитать файл до определённой строки

Сообщение Goodvin »

drBatty писал(а):
19.11.2010 15:04
Goodvin

ну так и я могу:

Shell

$ sed '2,4!d' gluk.txt кукует летает птица



(:
Ну так а в чём проблема, если оно удовлетворяет условиям поставленной задачи?
Спасибо сказали:
Аватара пользователя
ZyX
Сообщения: 355
ОС: Gentoo

Re: Прочитать файл до определённой строки

Сообщение ZyX »

drBatty писал(а):
19.11.2010 15:00
gluk47 писал(а):
19.11.2010 14:35
sed '/^! Чайник$/,${/^$/q}' file1.txt

просто sed для каждой строки выполняет скрипт.
тут если выполняется первое условие, то не выполняется второе. Потому жрать строки так просто не получается, нужно сделать цикл внутри скобок:

Код: Выделить всё

doc@bx:~/tests$ cat gluk.sed
#!/bin/sed -rnf

# начинаем цикл, со строки в начале которой "!"
/^!/{
    # загрузка сл. строки
    n
    :l
        # это условие сработает только со второй интерации
        # если если сразу за концом строки идёт конец буфера,
        /\n$/{
            # значит строка была пустой. Мы удаляем её и выходим
            s///p
            q
        }
        # если сл. строка последняя
        ${
            # печатаем ее и выходим
            p
            q
        }
        # иначе добавим следующую строчку, и продолжим
        N
    bl
}
doc@bx:~/tests$ ./gluk.sed gluk.txt
кукует
летает
птица
doc@bx:~/tests$

кстати, в одностроке баг - проявляется, если файл кончается пустой строкой
исправил в этом скрипте

О, боже, это кто-то способен понять, кроме автора? Раз уж всё равно используется perl, то почему бы не написать это на нём? Вот скрипт, который рассуёт это в файлы coocoo.rc и teapot.rc:

~/tmp/perl/test-getopt.pl (Created by format.vim)

#!/usr/bin/perl -p BEGIN { use strict; use warnings; use utf8; use Encode; our %files=qw( Кукушка coocoo.rc Чайник teapot.rc ); our $file; } $_=Encode::decode_utf8($_); if(/^\s*!\s*(.*)/) { if(defined $files{$1}) { open $file, '>:utf8', $files{$1} or die "Failed to open $files{$1}"; next; } else { close $file; undef $file; } } print $file $_ if(defined $file);


И ещё, у вас совершенно неправильный скрипт на perl. Там должны быть одиночные кавычки, $ENV{'coocooData'} вместо $coocooData и перед ним должно стоять export coocooData.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Прочитать файл до определённой строки

Сообщение sash-kan »

ну и общее решение:

Shell

#в текущем каталоге — один файл: $ ls 1 # вот его содержимое: $ cat 1 ! Кукушка кукует летает птица ! Чайник свистит стоит не птица ! test test1 test2 # прогоняем его через однострок: $ cat 1 | sed -rn 'H;/^$/ba;$ba;b;:a x;s/\n! ?/cat << EEE >/;s/[^\n]$/&\n/;s/$/EEE\n/;s/.*/&/e' # получаем ещё три файла в этом же каталоге: $ ls 1 test Кукушка Чайник # содержимое этих файлов: $ cat test test1 test2 $ cat Кукушка кукует летает птица $ cat Чайник свистит стоит не птица $



QUOTE писал(а):perl, то почему бы не написать это на нём?
скучно.

QUOTE писал(а):О, боже, это кто-то способен понять, кроме автора?
вы, вероятно, не видели _действительно_ сложные программы на sed-е.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Прочитать файл до определённой строки

Сообщение drBatty »

ZyX писал(а):
19.11.2010 22:07
О, боже, это кто-то способен понять, кроме автора?

1) perl я НЕ использовал.
2) скрипт - примитивный до нельзя.
3) кстати, если убрать комментарии, он короче и проще вашего в разы.

sash-kan писал(а):
19.11.2010 23:30
вы, вероятно, не видели _действительно_ сложные программы на sed-е.

речь про dc на sed ? (:
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
gluk47
Сообщения: 297
Статус: Любитель гвоздей и микроскопов
ОС: Kubuntu 17.10

Re: Прочитать файл до определённой строки

Сообщение gluk47 »

ZyX писал(а):
19.11.2010 22:07
И ещё, у вас совершенно неправильный скрипт на perl. Там должны быть одиночные кавычки, $ENV{'coocooData'} вместо $coocooData и перед ним должно стоять export coocooData.


В каком месте одинарные кавычки?
$coocooData подставляет шелл перед вызовом перлового скрипта, зачем эту переменную экспортить и потом читать перлом? Я предполагаю, что подставляемое значение не содержит «"» и «#» (по смыслу значения это всегда верно, хотя это и отличное место, чтобы поломать скрипт). Разве если я прочитаю её перлом, то наличие в ней кавычек и решётки ничего не сломает? В чём тогда вообще преимущество?
[gluk47@gluk47-desktop ~]$ ензу куищще
куищще is aliased to `reboot'
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Прочитать файл до определённой строки

Сообщение sash-kan »

drBatty писал(а):
24.11.2010 09:15
sash-kan писал(а):
19.11.2010 23:30
вы, вероятно, не видели _действительно_ сложные программы на sed-е.

речь про dc на sed ? (:
а есть и dc? классически в пример приводят google://sed tetris.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
ZyX
Сообщения: 355
ОС: Gentoo

Re: Прочитать файл до определённой строки

Сообщение ZyX »

gluk47 писал(а):
24.11.2010 21:01
ZyX писал(а):
19.11.2010 22:07
И ещё, у вас совершенно неправильный скрипт на perl. Там должны быть одиночные кавычки, $ENV{'coocooData'} вместо $coocooData и перед ним должно стоять export coocooData.


В каком месте одинарные кавычки?
$coocooData подставляет шелл перед вызовом перлового скрипта, зачем эту переменную экспортить и потом читать перлом? Я предполагаю, что подставляемое значение не содержит «"» и «#» (по смыслу значения это всегда верно, хотя это и отличное место, чтобы поломать скрипт). Разве если я прочитаю её перлом, то наличие в ней кавычек и решётки ничего не сломает? В чём тогда вообще преимущество?

Ещё там не должно быть «$», «@», «%» и, возможно, чего-то ещё. Поэтому я бы не стал так никогда делать. А «"» там как раз может быть. Если же использовать $ENV{'coocooData'}, то ничего не будет сломано, что бы в переменной ни содержалось (в двойных кавычках в *sh это всё же будет \$ENV{'perl'}).

То есть, вот такой вариант полностью безопасен:

(Created by format.vim)

export coocooData perl -pi -e "s#customrc#customrc\n\t\$ENV{'coocooData'}#" "$rcfile"


Спасибо сказали:
Аватара пользователя
ZyX
Сообщения: 355
ОС: Gentoo

Re: Прочитать файл до определённой строки

Сообщение ZyX »

drBatty писал(а):
24.11.2010 09:15
ZyX писал(а):
19.11.2010 22:07
О, боже, это кто-то способен понять, кроме автора?

1) perl я НЕ использовал.
А я и не говорил, что вы его использовали.
drBatty писал(а):
24.11.2010 09:15
2) скрипт - примитивный до нельзя.
Но это никак не связано с тем, что команды sed не задуманы, чтобы их читали. Без списка команд sed и расставления переносов и пробелов нет никаких шансов понять, что происходит.
drBatty писал(а):
24.11.2010 09:15
3) кстати, если убрать комментарии, он короче и проще вашего в разы.
И хуже работает: посмотрите на вариант sash-kan, в котором это дело дополнительно распихивается по файлам. Он, кстати, по-моему, понятнее, чем ваш без комментариев (во всяком случае, зная результат, я понял как он достигается без повторения man sed). Относительно короче: хотите сыграть в perl golf? Оттуда можно выкинуть все use, or die ..., … Вот примерный вариант:

~/tmp/perl/test-getopt2.pl (Created by format.vim)

#!/usr/bin/perl -p BEGIN{%f=qw(Кукушка coocoo Чайник teapot)}/^\s*!\s*(.*)/and open F,'>',(($f{$1})?($f{$1}):($1)).".rc"and next;print F $_ if*F;


Вот скрипт с тем же функционалом как у sash-can:

~/tmp/perl/test-getopt2.pl (Created by format.vim)

#!/usr/bin/perl -p /^\s*!\s*(.*)/and open F,">$1"and next;print F $_;


Не правда ли, последний вариант понятнее при меньшей длине и с тем же функционалом?

Кстати, у скрипта sash-kan есть недостаток: будут проблемы, если первая строка не начинается с восклицательного знака. У моего варианта проблем с этим нет: как я понял, print F $text; игнорируется, если F не определён.
Спасибо сказали:
Аватара пользователя
ZyX
Сообщения: 355
ОС: Gentoo

Re: Прочитать файл до определённой строки

Сообщение ZyX »

Недостатков даже больше: как я понял, нельзя иметь в названии раздела пробелы, |, >, <, $, …, так как эти символы интерпретируются оболочкой специальным образом. Нельзя также иметь EEE в качестве единственного содержимого строки. У меня со всем этим проблем нет, несмотря даже на то, что я ничего специально не сделал, чтобы их не иметь. Вероятно, будут проблемы если локаль/имена файлов/содержимое файла настроек будут не в utf-8.
Спасибо сказали:
Аватара пользователя
Subj
Сообщения: 151
Статус: Useful
ОС: win

Re: Прочитать файл до определённой строки

Сообщение Subj »

Чтот про awk никто не вспомнил...

Например как-нить так:

Код: Выделить всё

cat test | awk '/^! / {file=$2} /^ / {print $0 >> file}'
Building better software with Ada
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Прочитать файл до определённой строки

Сообщение drBatty »

sash-kan писал(а):
25.11.2010 02:52
а есть и dc? классически в пример приводят google://sed tetris.

про dc рассказывают в info sed
---------- Footnotes ----------

(1) `sed' guru Greg Ubben wrote an implementation of the `dc' RPN
calculator! It is distributed together with sed.


тетрис взорвал мозг!!! он ещё и работает, причём в цвете!!!!11!!111!
Его написала ДЕВУШКА Юля (пруф: http://uuner.livejournal.com/55238.html),
которая по слухам ещё и коммиты в ядро вставляет.... Мир двинулся с места...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Прочитать файл до определённой строки

Сообщение drBatty »

ZyX писал(а):
26.11.2010 01:51
Но это никак не связано с тем, что команды sed не задуманы, чтобы их читали. Без списка команд sed и расставления переносов и пробелов нет никаких шансов понять, что происходит.

у sed всего штук 30-40 команд (из которых 80% почти никогда не применяется). А сколько команд в вашем любимом языке? (да, в С их немного. за то over9000 совершенно необходимых функций, без которых даже helloworld не написать). Что до форматирования, то убрав форматирование, можно сделать нечитаемым код на любом языке. Но если это не пайтон, то работать он всё равно будет.
ZyX писал(а):
26.11.2010 01:51
И хуже работает:

в смысле, "хуже"?

ZyX писал(а):
26.11.2010 02:18
Недостатков даже больше:

а мой скрипт тут причём? там можно всякие <|>

Код: Выделить всё

BEGIN{%f=qw(Кукушка coocoo Чайник teapot)}/^\s*!\s*(.*)/and open F,'>',(($f{$1})?($f{$1}):($1)).".rc"and next;print F $_ if*F;

Код: Выделить всё

sed -n '/^!/{n;:l;/\n$/{s///p;q};${p;q};N;bl}'

мой гольф лучше вашего ;)

Subj а на awk слишком просто ;)

http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Прочитать файл до определённой строки

Сообщение watashiwa_daredeska »

drBatty писал(а):
30.11.2010 02:21
у sed всего штук 30-40 команд (из которых 80% почти никогда не применяется).
У brainfuck еще меньше :)
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Прочитать файл до определённой строки

Сообщение sash-kan »

watashiwa_daredeska писал(а):
30.11.2010 10:14
drBatty писал(а):
30.11.2010 02:21
у sed всего штук 30-40 команд (из которых 80% почти никогда не применяется).
У brainfuck еще меньше :)
есть реализация sed-а на brainfuck-е?
или хотя бы тетриса?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Subj
Сообщения: 151
Статус: Useful
ОС: win

Re: Прочитать файл до определённой строки

Сообщение Subj »

drBatty писал(а):
30.11.2010 02:21
Subj а на awk слишком просто ;)


Вот так всегда :(
Building better software with Ada
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Прочитать файл до определённой строки

Сообщение watashiwa_daredeska »

sash-kan писал(а):
30.11.2010 15:41
есть реализация sed-а на brainfuck-е?
Это я к тому, что малое количество команд слабо коррелирует с читаемостью программы. Т.е. если даже на brainfuck'е с его 8-ю командами написать sed или tetris, то читать это будет даже сложнее, чем (наверняка более длинную) те же sed или tetris на каком-нибудь страшном и ужасном C++ с templates, boost и прочей требухой. Как-то так.
Спасибо сказали: