S GNU Sed,
md5sum input.txt | sed 's/./x/5g'
Tím jednoduše přeskočíte nahrazení prvních 4 znaků řetězce a provedete nahrazení všech ostatních znaků.
Alternativa POSIX s Awk (i když pravděpodobně existuje něco jednoduššího),
md5sum xad | awk '{
  four=substr($0, 1, 4)
  rest=substr($0, 5)
  gsub(/./, "x", rest)
  print four, rest
}' OFS=""
 POSIXly (myslím), že byste mohli použít sed loop k opakovanému nahrazení prvního non-x znak následující za předponou o 4 znacích:
$ md5sum input.txt | sed '
:a
s/^\(....x*\)[^x]/\1x/
ta
'
 Nahraďte [^x] s [^x ] pokud chcete provést substituci pouze v prvním poli (kontrolní součet).
 S perl pokud GNU sed není k dispozici:
md5sum input.txt | perl -pe 's/^.{4}(*SKIP)(*F)|./x/g'
 ^.{4}(*SKIP)(*F) zabrání nahrazení prvních čtyř znaků
 |. určuje alternativní vzor, který má být nahrazen
Chcete-li změnit pouze kontrolní součet:
md5sum ip.txt | perl -pe 's/(^.{4}|\h.*$)(*SKIP)(*F)|./x/g'
 Pokud md5sum výstup začíná \ (např. pokud název souboru obsahuje znak nového řádku), můžete použít ^\\?.{4} místo ^.{4} aby bylo prvních pět znaků ponecháno odmaskovaných.