LINUX.ORG.RU
ФорумAdmin

Закоментировать блок в ini файл

 , , ,


0

1

всем привет

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

пример, как закоментить test01

[test01]
fdfgfdg
dfgdfg
...

[test02]
sdf
sdf

поделитесь плиз )


sed -r -i '/^\[test01\]/,/^\[/ { /^(\[test01\]|[^[])/ s/^/#/; }' file.ini

Результат:

#[test01]
#fdfgfdg
#dfgdfg
#...

[test02]
sdf
sdf
spirit ★★★★★
()

Если у тебя непрерывный блок и установлен vim-commentary и в виме для редактируемого файла установлен commentstring:

:g/^\[test01\]/normal gcip

Если не установлен vim-commentary

:g/^\[test01\]/normal vip<C-v><C-v>I#

где вместо написанных <C-v><C-v> нужно их нажать, чтобы ввести реальное значение C-v

Если не установлен vim-commentary и блок не непрерывный:

:g/^\[test01\]/normal v/\n\[/<C-v><C-m><C-v><C-v>I#

где вместо написанных <C-v><C-m> и <C-v><C-v> нужно их нажать, чтобы ввести реальные значения C-m и C-v

PS, вместо # для комментария вставь то, что у тебя является комментарием.

habamax ★★★
()
Последнее исправление: habamax (всего исправлений: 3)

@spirit, @habamax, в DOS INI комментарии начинаются с ;, а не с # (топикстартер, имей в виду) и если я ничего не путаю, там не поддерживается инлайн (просто для справки, не имеет отношения к сабжу).

Вариант с вимом поддерживаю.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

в DOS INI комментарии начинаются с ;, а не с #

я честно говоря даже не задумывался, но думаю топикстартер разберется.

habamax ★★★
()
Ответ на: комментарий от habamax

Не стоит путать юниксовые INI-like, TOML (на сложных конструкциях его легко отличить от INI) и оригинальный DOS INI.

Например в S.T.A.L.K.E.R. конфиги парсятся как DOS INI. Это из того, что сразу смог вспомнить.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

комментарии начинаются с ;

Да, вы правы, нужно # заменить на ;.
PHP, например, с некоторых версий категорически не любит # в своих ini-файлах.

spirit ★★★★★
()
awk '
/^\[/ { s=($0 ~ /^\[test01\]/) ? ";" : "" }
{ print s$0 }
' file.ini
vodz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.