N 바이트 이후 파이프를 잘라냅니다.

N 바이트 이후 파이프를 잘라냅니다.

정보를 파일로 전송하기 위해 파이프를 사용하고 있지만 myTool > file.txt 2>&1도구가 기가바이트의 데이터를 생성할 수 있습니다. 첫 번째 N 바이트(예: 2MB) 이후에는 잘라야 합니다. 이 작업을 수행할 수 있는 방법은 없는 것 같습니다 pv. 불행히도 한 줄씩 수행하는 것은 옵션이 아닙니다( head).

이를 수행하는 기본 도구가 없습니까?

이상적으로는 다음과 같이 작동합니다 myTool | limiter --amount 2M > file.txt 2>&1.

답변1

여러 구현에서 이 옵션을 head지원합니다 -c. GNU 구현은 M메가바이트 접미사도 허용하며 최신 버전에서는 MB메가바이트(1,000,000) 및 MiB메가바이트(1,048,576)도 지원합니다.

head -c 2097152
head -c 2M
head -c 2MiB
head -c 2000000
head -c 2MB

를 사용하면 pv를 사용하여 크기를 지정할 수 -s있고 를 사용하여 크기에 도달하면 즉시 읽기를 중지하도록 지시할 수 있습니다 -S. 다시 말하지만 접미사가 지원되지만 이는 1000이 아닌 1024의 거듭제곱입니다.

pv -Ss 2M
pv -Ss 2097152
pv -Ss 2000000

( -q진행정보가 필요하지 않은 경우 추가)

GNU를 사용하면 dd다음을 수행할 수 있습니다.

dd iflag=fullblock,count_bytes bs=64k count=2097152 status=none
dd iflag=fullblock,count_bytes bs=64k count=2MiB status=none
dd iflag=fullblock,count_bytes bs=64k count=2M status=none
dd iflag=fullblock,count_bytes bs=64k count=2000000 status=none
dd iflag=fullblock,count_bytes bs=64k count=2MB status=none

관련 정보