Пометка нескольких строк в ed

Есть ли конкретная причина, по которой вы используете школьную ОС на своем личном компьютере? Вероятно, есть несколько способов обойти вашу проблему. Если вам нужно использовать его только время от времени по определенной причине, я бы предложил использовать либо виртуальную машину, либо настроить систему с двойной загрузкой. Если вам это на самом деле не нужно, просто установите свою собственную ОС и на этом закончите.

0
04.09.2021, 17:08
1 ответ

Одна метка может обозначать только одну строку. Если вы укажете диапазон строк для команды k, будет отмечен только последний введенный адрес, поскольку команда kпринимает только один адрес.

Это из edспецификации стандарта POSIX (мой акцент):

If more than the required number of addresses are provided to a command that requires zero addresses, it shall be an error. Otherwise, if more than the required number of addresses are provided to a command, the addresses specified first shall be evaluated and then discarded until the maximum number of valid addresses remain, for the specified command.

Команда kвыглядит как (.)kxв стандарте, что означает, что она принимает не более одного адреса (по умолчанию для текущей строки ).

В зависимости от того, какой эффект вы хотите получить, вы можете использовать две метки, одну для строки 1 и другую для строки 3, или вы можете использовать одну метку вместе с адресом относительно этой метки с p.

Итак, либо используйте две метки,

1ka
3kb
'a,'b p

или используйте одну метку и относительную адресацию при вызове p,

1ka
'a,'a+2 p

или

3kb
'b-2,'b p

или что-то вроде

3kb
'b; -2,. p

или

1ka
'a;.,+2 p
3
04.09.2021, 18:26

Теги

Похожие вопросы