정보를 파일로 전송하기 위해 파이프를 사용하고 있지만 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