powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Еще один вопрос по sed, посложнее. Как закомментировать блок в файле?
3 сообщений из 3, страница 1 из 1
Еще один вопрос по sed, посложнее. Как закомментировать блок в файле?
    #35457898
makondo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну или не по sed, а по perl, не важно.


Код: plaintext
cat file |   sed "......" > file2

В файле хочу закомментировать блок типа

Код: plaintext
1.
2.
3.
4.
5.
HOST2
{
     aaa bbb
     cccc ddd
    ...
}

Такой блок встречается только один раз. Можно ли это сделать sed'ом ?

--
У мудрого человека нет врагов - только учителя

--
У мудрого человека нет врагов - только учителя
...
Рейтинг: 0 / 0
Еще один вопрос по sed, посложнее. Как закомментировать блок в файле?
    #35457950
makondo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, уточнение - знак комментария - это "!"

Я нашел что-то подобное в FAQ по sed, только емкак не могу это загнать в командную строку:

http://sed.sourceforge.net/sedfaq4.html#s4.20

4.20. How do I change only one section of a file?

You can match a range of lines by line number, by regexes (say, all lines between the words "from" and "until"), or by a combination of the two. For multiple substitutions on the same range, put the command(s) between braces {...}. For example:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
     # replace only between lines  1  and  20 
      1 , 20  s/Johnson/White/g

     # replace everywhere EXCEPT between lines  1  and  20 
      1 , 20  !s/Johnson/White/g

     # replace only between words "from" and "until". Note the
     # use of \<....\> as word boundary markers in GNU sed.
     /from/,/until/ { s/\<red\>/magenta/g; s/\<blue\>/cyan/g; }

     # replace only from the words "ENDNOTES:" to the end of file
     /ENDNOTES:/,$ { s/Schaff/Herzog/g; s/Kraft/Ebbing/g; }

--
У мудрого человека нет врагов - только учителя
...
Рейтинг: 0 / 0
Еще один вопрос по sed, посложнее. Как закомментировать блок в файле?
    #35457963
makondo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получилось только что!

Код: plaintext
cat SystemDefinition.cfg | sed "/HOST2/,/}/ {s,^,\!,g;} "
--


У мудрого человека нет врагов - только учителя
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Еще один вопрос по sed, посложнее. Как закомментировать блок в файле?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]