A substituição do sed na questão removeria todos os caracteres após um %p
, não apenas os traços, pois o [^K]
faz parte da sequência de correspondência. Você pode contornar isso capturando o caractere após %p
com parênteses (com escape) e colocando-o novamente com . Em
sed
:
$ echo '%p %p %pK' | sed 's/%p\([^K]\)/%pK/g'
%pK %pK %pK
Embora você queira usar [^a-zA-Z]
ou similar apenas no caso de usar outros modificadores para %p
.