nixp.ru v3.0

23 октября 2017,
понедельник,
22:08:47 MSK

DevOps с компанией «Флант»
Fatal написал 28 февраля 2005 года в 09:30 (584 просмотра) Ведет себя как мужчина; открыл 123 темы в форуме, оставил 484 комментария на сайте.

решил заняться освоением sed, нашёл доку

http://www.math.spbu.ru/user/rus/cluster/Doc/Library/sed_awk.shtml#top

в качестве примера там написано следующее

Пример:

who | sed '2a\

новая строка

'

Результат:

root tty1 Mar 13 17:23

mas tty2 Mar 13 18:50

новая строка

sae tty6 Mar 13 17:24

sae tty5 Mar 13 17:24

если набрать этот пример, то выводиться ошибка

я набираю так

who | sed '2a\ Enter

новая строка Enter

и здесь выводиться ошибка

или другой вариант

who | sed '2a\ Enter

новая строка' Enter

и здесь тоже — ошибка

подскажите, пожалуйста, что я набираю не так.

Genie

после символа «\» не нажно вставлять пробела.

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

в примечаниях в примеру, в начала, написано:

«\» используется в многострочных командах для экранирования продолжения строки.



$ who | sed '2a\
    новая строка
'
genie    pts/0        Feb 28 11:50 (:0.0)
genie    pts/1        Feb 28 13:02 (:0.0)
    новая строка
genie    pts/4        Feb 28 13:13 (:0.0)
$
Fatal

ввожу

[11:32] /home/ab_fatal> who | sed '2a\

? text'

sed: 1: «2a

text": command a expects \ followed by text

ввожу без знака '

[11:36] /home/ab_fatal> who | sed '2a\

? text

Нет соответствия для '.

пробовал различные апострофы и так ' и так ` и пробел я не ставлю после слеша

может в Linux и в FreeBSD sed работает по-разному?

Fatal

я разобрался, оказыватеся такое не работает под tcsh.

а почему так?

Genie

попробуй под tcsh использовать вот так:

$ who | sed '2a\\
    новая строка
'


(да-да, два слеша)

Fatal

так тоже не выходит :(