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"