table of contents
| DGREP(1) | User Commands | DGREP(1) | 
NAME¶
dgrep - Grep standard input for lines that match EXPRESSION.SYNOPSIS¶
dgrep [ OPTION]... EXPRESSIONDESCRIPTION¶
Grep standard input for lines that match EXPRESSION. EXPRESSION may be date/times prefixed with an operator `<', `<=', '=', '>=', which will match lines with date/times which are older, older-equal, equal, newer-equal, newer, or not equal respectively. EXPRESSION may also be format specifiers infixed by above operators and suffixed by a value (e.g. `%a="Wed"') which matches lines whose %a representation (weekday name abbreviated) is "Wed". EXPRESSION may be statements as described above concatenated through `&&' (for conjunction) or `||' (disjunction), both of which may be parenthesised as per usual to change precedence (`&&' goes over `||'). If multiple date/times occur on the same line and any one of them fulfills the criteria then the line is considered a match and will be output. Note:Operations can be specified by options (--eq, --gt, ...) as well.
This serves solely as a means of convenience, e.g. the dtest tool has a
similar syntax. Recognized OPTIONs:
- -h, --help
 - Print help and exit
 
- -V, --version
 - Print version and exit
 
- -q, --quiet
 - Suppress message about date/time and duration parser errors.
 
- -i, --input-format=STRING...
 - Input format, can be used multiple times. Each date/time will be passed to the input format parsers in the order they are given, if a date/time can be read successfully with a given input format specifier string, that value will be used.
 
- -e, --backslash-escapes
 - Enable interpretation of backslash escapes in the output and input format specifier strings.
 
- -o, --only-matching
 - Show only the part of a line matching DATE.
 
- -v, --invert-match
 - Select non-matching lines.
 
- --from-zone=ZONE
 - Consider date/times on stdin as coming from the zone ZONE, default: UTC.
 
- -z, --zone=ZONE
 - Consider date/times in EXPRESSION as coming from the zone ZONE, default: UTC.
 
- --eq
 - Lines match when date/times are equal to EXPRESSION.
 
- --ne
 - Lines match when date/times are not the same as EXPRESSION.
 
- --gt
 - Lines match when date/times are newer than EXPRESSION.
 
- --lt
 - Lines match when date/times are older than EXPRESSION.
 
- --ge
 - Lines match when date/times are newer than or equal EXPRESSION.
 
- --le
 - Lines match when date/times are older than or equal EXPRESSION.
 
- --nt
 - Lines match when date/times are newer than or equal EXPRESSION.
 
- --ot
 - Lines match when date/times are older than or equal EXPRESSION.
 
FORMAT SPECS¶
Format specs in dateutils are similar to posix' strftime(). However, due to a broader range of supported calendars dateutils must employ different rules. Date specs:  %a  The abbreviated weekday name
  %A  The full weekday name
  %_a The weekday name shortened to a single character (MTWRFAS)
  %b  The abbreviated month name
  %B  The full month name
  %_b The month name shortened to a single character (FGHJKMNQUVXZ)
  %c  The count of the weekday within the month (range 00 to 05)
  %C  The count of the weekday within the year (range 00 to 53)
  %d  The day of the month, 2 digits (range 00 to 31)
  %D  The day of the year, 3 digits (range 000 to 366)
  %F  Equivalent to %Y-%m-%d (ymd's canonical format)
  %j  Equivalent to %D
  %m  The month in the current calendar (range 00 to 19)
  %Q  The quarter of the year (range Q1 to Q4)
  %q  The number of the quarter (range 01 to 04)
  %s  The number of seconds since the Epoch.
  %u  The weekday as number (range 01 to 07, Sunday being 07)
  %U  The week count,  day of week is Sun (range 00 to 53)
  %V  The ISO week count,  day of week is Mon (range 01 to 53)
  %w  The weekday as number (range 00 to 06, Sunday being 00)
  %W  The week count,  day of week is Mon (range 00 to 53)
  %y  The year without a century (range 00 to 99)
  %Y  The year including the century
  %Z  The zone offset in hours and minutes (HH:MM) with
      a preceding sign (+ for offsets east of UTC, - for offsets
      west of UTC)
%Od The day as roman numerals %Om The month as roman numerals %Oy The two digit year as roman numerals %OY The year including the century as roman numerals
  %rs In time systems whose Epoch is different from the unix Epoch, this
      selects the number of seconds since then.
  %rY In calendars with years that don't coincide with the Gregorian
      years, this selects the calendar's year.
%dth The day of the month as an ordinal number, 1st, 2nd, 3rd, etc. %mth The month of the year as an ordinal number, 1st, 2nd, 3rd, etc.
%db The business day of the month (since last month's ultimo) %dB Number of business days until this month's ultimoTime specs:
%H The hour of the day using a 24h clock, 2 digits (range 00 to 23) %I The hour of the day using a 12h clock, 2 digits (range 01 to 12) %M The minute (range 00 to 59) %N The nanoseconds (range 000000000 to 999999999) %p The string AM or PM, noon is PM and midnight is AM. %P Like %p but in lowercase %S The (range 00 to 60, 60 is for leap seconds) %T Equivalent to %H:%M:%SGeneral specs:
%n A newline character %t A tab character %% A literal % characterModifiers:
%O Modifier to turn decimal numbers into Roman numerals %r Modifier to turn units into real units th Suffix, read and print ordinal numbers b Suffix, treat days as business daysBy design dates before 1601-01-01 are not supported. For conformity here is a list of calendar designators and their corresponding format string:
ymd %Y-%m-%d ymcw %Y-%m-%c-%w ywd %rY-W%V-%u bizda %Y-%m-%db lilian n/a ldn n/a julian n/a jdn n/aThese designators can be used as output format string, moreover, @code{lilian}/@code{ldn} and @code{julian}/@code{jdn} can also be used as input format string.
EXAMPLES¶
$ dgrep 2012-03-01 <<EOF 2012-02-28 2012-02-29 2012-03-01 2012-03-02 EOF 2012-03-01 $
$ dgrep '<2012-03-01' <<EOF 2012-02-28 2012-02-29 2012-03-01 2012-03-02 EOF 2012-02-28 2012-02-29 $
$ dgrep !=2012-03-01 <<EOF 2012-02-28 2012-02-29 2012-03-01 2012-03-02 EOF 2012-02-28 2012-02-29 2012-03-02 $
$ dgrep =2012-03-01 <<EOF Feb 2012-02-28 Feb 2012-02-29 leap day Mar 2012-03-01 Mar 2012-03-02 EOF Mar 2012-03-01 $
$ dgrep -o <2012-03-01 <<EOF Feb 2012-02-28 Feb 2012-02-29 leap day Mar 2012-03-01 Mar 2012-03-02 EOF 2012-02-28 2012-02-29 $
$ dgrep '>=12:00:00' <<EOF fileA 11:59:58 fileB 11:59:59 leap ? fileNOON 12:00:00 new version fileC 12:03:12 EOF fileNOON 12:00:00 new version fileC 12:03:12 $
$ dgrep -o '>=12:00:00' <<EOF fileA 11:59:58 fileB 11:59:59 leap ? fileNOON 12:00:00 new version fileC 12:03:12 EOF 12:00:00 12:03:12 $
$ dgrep 2012-03-01 <<EOF 2012-02-28T10:00:00 2012-02-29T10:00:00 2012-03-01T10:00:00 2012-03-02T10:00:00 EOF 2012-03-01T10:00:00 $
$ dgrep '<2012-03-01' <<EOF 2012-02-28T10:00:00 2012-02-29T10:00:00 2012-03-01T10:00:00 2012-03-02T10:00:00 EOF 2012-02-28T10:00:00 2012-02-29T10:00:00 $
$ dgrep 2012-03-01T10:00:00 <<EOF 2012-02-28T10:00:00 2012-02-29T10:00:00 2012-03-01T10:00:00 2012-03-02T10:00:00 EOF 2012-03-01T10:00:00 $
$ dgrep '<2012-03-01T14:00:00' <<EOF 2012-02-28T10:00:00 2012-02-29T10:00:00 2012-03-01T10:00:00 2012-03-02T10:00:00 EOF 2012-02-28T10:00:00 2012-02-29T10:00:00 2012-03-01T10:00:00 $
AUTHOR¶
Written by Sebastian Freundt <freundt@fresse.org>REPORTING BUGS¶
Report bugs to: https://github.com/hroptatyr/dateutils/issuesSEE ALSO¶
The full documentation for dgrep is maintained as a Texinfo manual. If the info and dgrep programs are properly installed at your site, the command- info (dateutils)dgrep
 
| November 2014 | dateutils 0.3.1 |