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|5555
torna-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|5555
torna-se|non-digits|5555
, mas# non-digits|5555|non-digits|5555
permanece inalterado porque a substituição padrão não corresponde.
-