Here's the updated patch taking into account the feedback I got from Bart and dana. -l length has been converted to -c count -L is placed before -U in the documentation Documentation specifies that -r (raw) is for binary data. Range checking has been added to the -L and -U options Bug where -i overrode -L or -U has been fixed.  Bounds take precedence even if -i is redundantly specified. Default count has been changed to 1 if -i, -L, and/or -U has been specified without -a dana's completion function has been updated with these changes and included A test file has been created (Not sure how useful it is, but it's there)