[РЕШЕНО] sed, как вывести номер строки (Номер строки начинающейся с $begin и заканчивающейся на $end)

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

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

Ответить
Аватара пользователя
Disova
Сообщения: 59
ОС: Debian, CentOS

[РЕШЕНО] sed, как вывести номер строки

Сообщение Disova »

Всем добрый день. Подскажите как можно вывести с помощью sed номер строки начинающейся с $begin и заканчивающейся на $end.
Так выводит номер строки если заканчивается на end.

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

cat file | sed -n '/$end$/='
ride it you way
Спасибо сказали:
Аватара пользователя
nerve
Сообщения: 280
ОС: OpenBSD

Re: [РЕШЕНО] sed, как вывести номер строки

Сообщение nerve »

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

sed -n '/^\$begin.*\$end$/=' file


Спасибо сказали:
Аватара пользователя
Disova
Сообщения: 59
ОС: Debian, CentOS

Re: [РЕШЕНО] sed, как вывести номер строки

Сообщение Disova »

nerve писал(а):
05.09.2014 15:50

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

sed -n '/^\$begin.*\$end$/=' file

Спасибо, выручили :)
ride it you way
Спасибо сказали:
Аватара пользователя
nerve
Сообщения: 280
ОС: OpenBSD

Re: [РЕШЕНО] sed, как вывести номер строки

Сообщение nerve »

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

Re: [РЕШЕНО] sed, как вывести номер строки

Сообщение drBatty »

Disova
только учтите, что номер строки выводится "не туда", а именно сразу на выход. Ну а другие команды работают с внутренним буфером. Потому выхлоп '=' нельзя использовать внутри самой sed, только если вторую sed после поставить.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
nerve
Сообщения: 280
ОС: OpenBSD

Re: [РЕШЕНО] sed, как вывести номер строки

Сообщение nerve »

drBatty писал(а):
05.09.2014 16:50
Disova
только учтите, что номер строки выводится "не туда", а именно сразу на выход. Ну а другие команды работают с внутренним буфером. Потому выхлоп '=' нельзя использовать внутри самой sed, только если вторую sed после поставить.

drBatty, а можно разъяснить или показать примером?

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

Re: [РЕШЕНО] sed, как вывести номер строки

Сообщение drBatty »

nerve
ну например если у нас есть файл с содержимым "1", то мы можем поменять эту "1"

$

$ echo "1" | sed 's/1/Ы/' Ы


ну а с '=' так не получится:

$

$ echo | sed '=;s/1/Ы/' 1


тоже самое верно для sed-команд a,c,i и некоторых других.

Таким образом команда '=' не слишком полезна, учитывая, что строки может нумировать даже cat

$

$ echo "a b c d" | cat -n 1 a 2 b 3 c 4 d


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

Скоро придёт
Осень
Спасибо сказали:
Ответить