/^#/
соответствует строкам, которые начинаются (^
) с #
. d
удаляет их. Действие по умолчанию sed
состоит в том, чтобы напечатать строку (если не задано -n
), поэтому печатается все остальное.
Я знаю, что
#
может означать конец команды или комментария.Я знаю, что
$
указывает на начало команды.
Мм, нет. В регулярных выражениях ^
отмечает начало строки (или строки), $
конец. #
используется как символ комментария, поэтому обычно в начале строки.
Обратите внимание, что многие файлы, использующие #
в качестве символа комментария, позволяют использовать его после команды или иначе не непосредственно в начале строки. Он может быть с отступом, как в комментарии, оставшемся в вашем примере.
Что-то вроде /^ *#/d
(или /^[ \t]*#/d
) может быть лучше, так как оно также удалит комментарии с отступом.