cat-range-exec $RANGE /path/to/big/file command with arguments cat-range-exec will take a given byte range and path and output that range to the command given to it. The command will have its standard input redirected to the file range given to it by cat-range-exec. Think of it as a faster, specialized version of dd(1): #!/bin/ksh first=152284 last=174058 count=$(($last - $first + 1)) # The following commands should give equivalent output: cat-range-exec "$first-$last" foo.log sha1sum dd if=foo.log bs=1 skip=$first count=$count 2>/dev/null | sha1sum exit 0 Note that you do not pipe the output of cat-range-exec to another command, but instead just add the arguments needed to run that command onto the cat-range-exec command-line. Thus its usage is similar to things like nice(1) or strace(1) or xargs(1). cat-range-exec can take advantage of zero-copy I/O facilities to minimize overhead when outputting its output to any given command. Setting the IO_FACILITY= environment variable will allow it to use a less-portable, but faster I/O facilities. Available values for IO_FACILITY are: mmap - Linux and Solaris linux_sendfile - Linux only (uses socketpair instead of pipe) splice - Linux only (Linux >=2.6.23) portable - default, any POSIX-compliant OS