シェルスクリプトで16進パターンを見つける方法は?

シェルスクリプトで16進パターンを見つける方法は?

このスレッドに感謝します。 https://stackoverflow.com/questions/23695609/how-to-grep-for-presence-of-特異的-hex-bytes-in-files

私はファイルから特定の16進パターンをgrepし、次のようにbashからオフセットを返すことができると決めました。

$ time grep -obUaP -m1 "\xFF\xFF\x00\x01\x00\x01\x04\x02\x00\x00\x00\x00\x00\x00\x00\x00" file.bin
1440710656:��

real    0m0.553s
user    0m0.452s
sys     0m0.101s

しかし、スクリプトに含めようとしています。 Bashで正しいコマンドを実行するときスクリプト、次のように失敗します。

$ cat script.sh
#!/bin/bash

time grep -obUaP -m1 "\xFF\xFF\x00\x01\x00\x01\x04\x02\x00\x00\x00\x00\x00\x00\x00\x00" file.bin

$ ./script.sh

real    0m20.888s
user    0m20.505s
sys     0m0.378s

私はパターンに一重引用符を使用し、引用符を使用せずに変数に保存するなどの操作を試しましたが、これを達成する方法がわかりません。最初はなぜ動作しなかったのか分からないので、正確に何をトラブルシューティングするのかわかりません。

私が逃したことについての提案はありますか?

関連情報