A linha de comando sed
sed '/^#/d' ~/.profile
removerá todos os comentários de shell que começam no início de uma linha do arquivo ~/.profile
, por exemplo o primeiro, mas não o segundo, das duas linhas seguintes:
# comment
# indented comment
Ele faz isso tentando corresponder #
no início da linha ( ^
) e excluirá ( d
) todas as linhas correspondentes.
Para também remover comentários recuados de um script de shell, use
sed '/^[[:blank:]]*#/d' file
[[:blank:]]
corresponderá a caracteres de espaço e guias horizontais.
$
significa apenas "início de um comando" no sentido em que é o prompt comum usado pelo shell para solicitar que você digite algo na linha de comando.
#
é o caractere que introduz um comentário no shell. Ele não tem nenhum propósito em um script sed
além de corresponder a #
na entrada. Eu nunca vi isso usado para significar o "fim de um comando".