grep --byte-offset이 바이트 오프셋을 제공하지 않습니까?

grep --byte-offset이 바이트 오프셋을 제공하지 않습니까?

난 달린다

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 종속성을 보다 일반적인 종속성으로 바꾸십시오... (경고: 전체 파일을 메모리에 저장하므로 대용량 파일의 경우 불편할 수 있습니다)

관련 정보