Você está sentindo falta de uma barra invertida antes de um dos )
s. Você provavelmente quis dizer g
(globalmente substituir; toda ocorrência) em vez de p
(imprimir se a substituição foi bem-sucedida, o que faria com que as linhas substituídas fossem impressas duas vezes). E \{1,\}
(ou \+
com algumas implementações) em vez de *
( um ou mais em vez de zero ou mais ):
sed 's/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/ANONYMOUS/g' < "$IPLOG"
Ou fatorizou um pouco:
sed 's/\([0-9]\{1,\}\.\)\{3\}[0-9]\{1,\}/ANONYMOUS/g' < "$IPLOG"
Algumas implementações sed
têm -E
(ou -r
como em ssed
ou versões mais antigas do GNU sed
) para expressões regulares estendidas que podem torná-lo um pouco mais legível:
sed -E 's/([0-9]+\.){3}[0-9]+/ANONYMOUS/g' < "$IPLOG"