O formato geral dos comandos sed é
[address[,address]] function
Quando um comando tem um único endereço, ele opera em todas as linhas que correspondem a esse endereço. Quando um comando não tem endereço, ele opera em todas as linhas.
Referência: POSIX sed
Com relação aos seus exemplos específicos:
-
/^#/ s/[0-9][0-9]*//-
Este comando tem um endereço,
/^#/, que corresponde a todas as linhas que começam com#. -
O padrão de substituição é
/[0-9][0-9]*/. Isso corresponde à primeira seqüência de dígitos onde quer que ela ocorra na linha. -
Resumo em inglês simples : exclua a primeira sequência de dígitos em todas as linhas que começam com
#. -
Exemplo :
# non-digits|5555|non-digits|5555torna-se# non-digits||non-digits|5555
-
-
s/^#[0-9][0-9]*//-
Não há endereço, então este comando opera em todas as linhas.
-
O padrão de substituição,
/^#[0-9][0-9]*/, corresponde a uma sequência de dígitos consecutivos precedidos por um#ancorado no início da linha. -
Resumo em inglês simples : exclua
#seguido por uma sequência de dígitos (e somente esse padrão) desde o início de cada linha. -
Exemplo :
#5555|non-digits|5555torna-se|non-digits|5555, mas# non-digits|5555|non-digits|5555permanece inalterado porque a substituição padrão não corresponde.
-