Esse é o equivalente do sinal m
nos operadores perl
regexp ou usando (?m)
em regexps perl ou PCREs (embora gsed
' M
flag também remova o s
perl flag, como sem M
, sed
.
corresponde à nova linha, enquanto com perl
, você precisa da s
sinalizador para .
para corresponder à nova linha).
Esses sinalizadores só entram em ação quando o espaço de padrão contém mais de uma linha, como quando usamos -z
(para ler registros delimitados por NUL) ou ao adicionar linhas ao espaço de padrão com comandos como G
, N
ou s
.
$ seq 3 | sed 'N;s/$/<foo>/g'
1
2<foo>
3
$ seq 3 | sed 'N;s/$/<foo>/Mg'
1<foo>
2<foo>
3
Após N
, o espaço padrão contém 1<newline>2
. Sem M
, $
corresponde apenas no final do espaço padrão, (após 2 ); com M
, $
corresponde a ambos no final da primeira linha desse espaço padrão (depois de 1 , mas antes da nova linha), e no final o espaço padrão, (depois de 2 ).