O problema com a edição de arquivos binários é que eles são freqüentemente dispostos em um formato particular com a posição de bytes particulares tendo significado. Então, tentar automatizar isso pode ser muito difícil e provavelmente deve ser feito com uma ferramenta que entenda o formato do arquivo.
O script Bash a seguir pode ser usado para editar arquivos de texto:
#!/bin/bash
while read -r file
do
{
tempfile=$(tempfile) || tempfile=$(mktemp) || { tempfile="/tmp/tmpfile.$$" && touch "$tempfile"; } &&
sed 's/original text/new text/g' "$file" > "$tempfile" &&
mv "$tempfile" "$file"
} || echo "Edit failed for $file"
done < <(find . -type f)
ou altere a segunda e a última linha para:
find . -type f | while
e
done
Se a sua versão de sed
puder fazer a edição no local, você poderá eliminar a criação de arquivos temporários (entre do
e done
acima) e usar este comando sed
dentro do loop:
sed -i 's/original text/new text/g' "$file"