Eu não estou no HP-UX, então isso só foi verificado em xd (1) :
xd -b -An -v $filename
-
-Animpede que o deslocamento seja mostrado -
-bé padronizado para bytes únicos, (octal paraod, hex paraxd) -
-vimpede que linhas idênticas sejam substituídas por*
(Muitos sistemas, inclusive meu, têm od , mas não xd . Então, para portabilidade, eu uso od -tx1 -An -v $filename .)
Isso produzirá bytes hexadecimais individuais, com um espaço entre cada um. Alterar o comando tr para tr -d [:space:] removerá todos os espaços em branco, não apenas as novas linhas.
Juntando tudo isso, você precisa substituir as partes xxd e tr do seu script para que a linha fique assim:
xd -b -An -v $filename | tr -d '[:space:]' | grep -i "**STRING**" > /dev/null