このスレッドに感謝します。 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
私はパターンに一重引用符を使用し、引用符を使用せずに変数に保存するなどの操作を試しましたが、これを達成する方法がわかりません。最初はなぜ動作しなかったのか分からないので、正確に何をトラブルシューティングするのかわかりません。
私が逃したことについての提案はありますか?