Existem vários problemas com o seu código:
- em cada linha lida, você recria
somefile.txt
, apagando, portanto, o que foi colocado na linha anterior. Provavelmente, você deve usar>> somefile.txt
ou mover> somefile.txt
após a palavra-chavedone
. - parece que você está recebendo dados binários (de acordo com
xxd
dump), mas seu processo é como se fossem dados textuais separados por novas linhas. Com dados binários,read
eecho
não funcionam corretamente.
Por que não simplesmente passar o conteúdo de um descritor de arquivo para xxd
e salvar o resultado em um arquivo? Ou seja apenas isso:
xxd -ps <&4 | sed 's/../&\ /g' > somefile.txt &