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

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

Модератор: /dev/random

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

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

Сообщение Disova » 05.09.2014 15:44

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

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

cat file | sed -n '/$end$/='
ride it you way
Спасибо сказали:

Аватара пользователя
nerve
Сообщения: 267
ОС: OpenBSD

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

Сообщение nerve » 05.09.2014 15:50

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

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


Спасибо сказали:

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

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

Сообщение Disova » 05.09.2014 16:02

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

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

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

Спасибо, выручили :)
ride it you way
Спасибо сказали:

Аватара пользователя
nerve
Сообщения: 267
ОС: OpenBSD

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

Сообщение nerve » 05.09.2014 16:06

не за что, сам такой же)
Спасибо сказали:

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

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

Сообщение drBatty » 05.09.2014 16:50

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

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

Аватара пользователя
nerve
Сообщения: 267
ОС: OpenBSD

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

Сообщение nerve » 05.09.2014 17:08

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

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

Disova, только заметил что ты из Харькова)
Спасибо сказали:

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

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

Сообщение drBatty » 05.09.2014 17:28

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

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