파일의 헤더 (처음 10 바이트)를 가져와야하는 bash 스크립트를 작성하고 다른 섹션에서 처음 10 바이트를 제외한 모든 것을 가져옵니다. 이 파일은 바이너리 파일이며 처음 10 바이트 동안 's' \0
와 \n
's ' 가있을 가능성이 높습니다 . 대부분의 유틸리티가 ASCII 파일에서 작동하는 것 같습니다. 이 작업을 수행하는 좋은 방법은 무엇입니까?
답변:
이 dd
명령을 사용하여 바이너리 파일에서 임의의 바이트 수를 복사 할 수 있습니다 .
dd if=infile of=outfile1 bs=10 count=1
dd if=infile of=outfile2 bs=10 skip=1
dd
신뢰할 수 없습니다. 여러 가지 이유로 요청 된 것보다 적은 바이트를 읽을 수 있습니다.
{ printf a; sleep 1; printf b; } | dd bs=2 count=1 2>/dev/null | wc -c