Como fazer coisas como dd if=somefile bs=1 skip=1337 count=31337000
, mas eficientemente, não usar leituras e gravações de 1 byte?
A solução é esperada:
- Para ser simples (para não-simples, eu posso escrever algum Perl oneliner que fará isso)
- Para suportar grandes desvios e comprimentos (para que hacks com tamanho de bloco no dd não ajudem)
Solução parcial (não é simples o suficiente, tentar o mesmo com comprimento tornará ainda mais complexo):
dd if=somefile bs=1000 skip=1 count=31337 | { dd bs=337 count=1 of=/dev/null; rest_of_pipeline; }
# 1337 div 1000 and 1337 mod 1000