Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DATEGREP(1)			 User Commands			   DATEGREP(1)

NAME
       dategrep	- Grep standard	input for lines	that match EXPRESSION.

SYNOPSIS
       dategrep	[OPTION]...  EXPRESSION

DESCRIPTION
       Grep standard input for lines that match	EXPRESSION.

       EXPRESSION  may be date/times prefixed with an operator `<', `<=', `=',
       `>=', `>', `!=',	`<>' (if omitted defaults to `='),  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 rep-
       resentation (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  ful-
       fills the criteria then the line	is considered a	match and will be out-
       put.

       Note:
	 Operations can	be specified by	options	(--eq, --gt, ...) as well.
	 This serves solely as a means of convenience, e.g. the	datetest  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 in-
	      put format specifier string, that	value will be used.

       -b, --base=DT
	      For underspecified input use DT as a fallback to fill in missing
	      fields.	Also  used for ambiguous format	specifiers to position
	      their range on the absolute time line.  Must be a	 date/time  in
	      ISO8601 format.  If omitted defaults to the current date/time.

       -e, --backslash-escapes
	      Enable interpretation of backslash escapes in the	output and in-
	      put format specifier strings.

       -o, --only-matching
	      Show only	the part of a line matching DATE.

       -v, --invert-match
	      Select non-matching lines.

       --from-locale=LOCALE
	      Interpret	dates on stdin or the command line as coming from  the
	      locale LOCALE, this would	only affect month and weekday names as
	      input formats have to be specified explicitly.

       --from-zone=ZONE
	      Consider date/times on stdin as coming from the zone  ZONE,  de-
	      fault: 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)
	 %g  ISO week date year	without	the century (range 00 to 99)
	 %G  ISO week date year	including the century
	 %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
	 %_y The year shortened	to a single digit
	 %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	ultimo

       Time 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:%S

       General specs:
	 %n  A newline character
	 %t  A tab character
	 %%  A literal % character

       Modifiers:
	 %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 days

       By design dates before 1601-01-01 are not supported.

       For  conformity here is a list of calendar designators and their	corre-
       sponding	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/a

       These 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
	 $ dategrep 2012-03-01 <<EOF
	 2012-02-28
	 2012-02-29
	 2012-03-01
	 2012-03-02
	 EOF
	 2012-03-01
	 $

	 $ dategrep '<2012-03-01' <<EOF
	 2012-02-28
	 2012-02-29
	 2012-03-01
	 2012-03-02
	 EOF
	 2012-02-28
	 2012-02-29
	 $

	 $ dategrep \!=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
	 $

	 $ dategrep =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
	 $

	 $ dategrep -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
	 $

	 $ dategrep '>=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
	 $

	 $ dategrep -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
	 $

	 $ dategrep 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
	 $

	 $ dategrep '<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
	 $

	 $ dategrep 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
	 $

	 $ dategrep '<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/issues

SEE ALSO
       The full	documentation for dategrep is maintained as a Texinfo  manual.
       If  the info and	dategrep programs are properly installed at your site,
       the command

	      info (dateutils)dategrep

       should give you access to the complete manual.

dateutils 0.4.1			 December 2016			   DATEGREP(1)

NAME | SYNOPSIS | DESCRIPTION | FORMAT SPECS | EXAMPLES | AUTHOR | REPORTING BUGS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=dategrep&sektion=1&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help