난 달린다
grep -b --byte-offset 'EXTH' Agent_of_Change.mobi
하지만 "이진 파일 Agent_of_Change.mobi 일치"만 표시됩니다. 바이트 오프셋을 어떻게 얻을 수 있나요?
답변1
grep
기본적으로는성냥바이너리 파일의 경우.
grep
바이너리가 텍스트로 처리되도록 지시해야 합니다 .
grep -a -b 'EXTH' Agent_of_Change.mobi
그러나 다음과 grep
같은 결과가 발생할 수 있다는 경고가 표시됩니다.
option. If TYPE is text, grep processes a binary file as if it
were text; this is equivalent to the -a option. Warning: grep
--binary-files=text might output binary garbage, which can have
nasty side effects if the output is a terminal and if the
terminal driver interprets some of it as commands.
답변2
-a
인쇄할 수 없는 것으로 보이는 경우에도 일치 항목을 강제로 인쇄하도록 추가되었습니다 .
추가한 후에 -o
는 줄 대신 "EXTH"만 인쇄합니다. 이는 또한 바이트 오프셋을 변경합니다. "EXTH"를 포함하는 줄의 시작 오프셋이 아닌 "EXTH"의 오프셋을 인쇄합니다. 파일이 실제로 줄로 구성되지 않았다면 개선되었을 것입니다!
또는 perl -n0777e 'print pos()-length($&),"\n" while /EXTH/g'
GNU grep 종속성을 보다 일반적인 종속성으로 바꾸십시오... (경고: 전체 파일을 메모리에 저장하므로 대용량 파일의 경우 불편할 수 있습니다)