Tôi tạo các tệp dữ liệu nhị phân chỉ đơn giản là một loạt các bản ghi được nối với nhau. Mỗi bản ghi bao gồm một đầu (nhị phân) theo sau bởi dữ liệu nhị phân. Trong tiêu đề nhị phân là chuỗi ký tự ascii dài 80 ký tự. Một nơi nào đó trên đường đi, quá trình viết các tập tin của tôi có một chút sai lầm và tôi đang cố gắng để gỡ lỗi vấn đề này bằng cách kiểm tra bao lâu mỗi bản ghi thực sự là."grep" offset của chuỗi ascii từ tệp nhị phân
This có vẻ cực kỳ liên quan, nhưng tôi không hiểu perl, vì vậy tôi đã không thể nhận được câu trả lời được chấp nhận ở đó để làm việc. Câu trả lời khác chỉ tới bgrep
mà tôi đã biên soạn, nhưng nó muốn tôi cho nó ăn một chuỗi hex và tôi chỉ muốn có một công cụ mà tôi có thể cho nó chuỗi ascii và nó sẽ tìm thấy nó trong dữ liệu nhị phân, in chuỗi và bù đắp byte nơi nó được tìm thấy.
Nói cách khác, tôi đang tìm kiếm một số công cụ có vai trò như thế này:
tool foobar filename
hoặc
tool foobar < filename
và đầu ra của nó là một cái gì đó như thế này:
foobar:10
foobar:410
foobar:810
foobar:1210
...
ví dụ chuỗi phù hợp và một byte bù đắp trong tệp nơi trận đấu bắt đầu. Trong trường hợp ví dụ này, tôi có thể phỏng đoán rằng mỗi bản ghi dài 400 byte.
trở ngại khác:
- khả năng tìm kiếm bằng regex là mát mẻ, nhưng tôi không cần nó cho vấn đề này
- tập tin nhị phân của tôi là lớn (3.5GB), vì vậy tôi muốn tránh đọc toàn bộ tập tin vào bộ nhớ nếu có thể.
argv! Tôi không biết tại thời điểm nào, sự thành thạo ngữ pháp tiếng Anh của tôi trượt vào trong hầm mộ. Cảm ơn bạn đã sửa lỗi đó cho tôi @Kevin – mgilson