/**@page ttail *@brief timed tail for logfiles *@section SYNOSPIS *ttail [OPTION]... [FILE]... *@section DESCRIPTION *Display loglines given a minimum date and/or a maximum date. * *For huge files (or a huge list of files) you should have better performance *giving files as argument (thank's to binary search on file list and in files). * *@par -d --date-min=DATE *Start to output loglines starting from this date *@par -m --date-max=DATE *Stop to output loglines starting from this date *@par -f --date-format=FMT *The date format present in the logfiles and used by -d --date-min and *-m --date-max options (see @ref datefmt for more details) *@par -p --prefix-len *Set a constant prefix len to drop for each logline *@par -P --permissive *Tell ttail to continue after some errors (prefix or date not found, invalid file, etc.) *@par -r --re-prefix=REGEX *Drop matching prefix for each logline *@par -E --re-extended *Interpret -r --re-prefix as an extended regular expression (specified by *POSIX) *@par -I --re-ignore-cas *Ignore case for -r --re-prefix option (specified by POSIX) *@par -v[v[v[...]]] *Augment the loglevel * *@section datefmt Date formats * * ttail understand two date formats : strprtime and relative * *@subsection datefmt_rel Relative date format *Relative date format is used with -d --date-min or -m --date-max arguments. *The shape of a relative date is "-#[VAL][UNIT]" with VAL an integer and UNIT *one of the recognized units : *- y[ear] *- M[onth] *- d[ay] *- h[our] *- m[in] *- s[ec] * *@subsection datefmt_strptime Strptime date format * The supported input field descriptors are listed below. In case a text string (such as the name * of a day of the week or a month name) is to be matched, the comparison is case insensitive. In * case a number is to be matched, leading zeros are permitted but not required. * * \%% The % character. * * \%a or %A * The name of the day of the week according to the current locale, in abbreviated form or * the full name. * * \%b or %B or %h * The month name according to the current locale, in abbreviated form or the full name. * * \%c The date and time representation for the current locale. * * \%C The century number (0-99). * * \%d or %e * The day of month (1-31). * * \%D Equivalent to %m/%d/%y. (This is the American style date, very confusing to non-Ameri‐ * cans, especially since %d/%m/%y is widely used in Europe. The ISO 8601 standard format * is %Y-%m-%d.) * * \%H The hour (0-23). * * \%I The hour on a 12-hour clock (1-12). * * \%j The day number in the year (1-366). * * \%m The month number (1-12). * * \%M The minute (0-59). * * \%n Arbitrary whitespace. * * \%p The locale's equivalent of AM or PM. (Note: there may be none.) * * \%r The 12-hour clock time (using the locale's AM or PM). In the POSIX locale equivalent to * \%I:%M:%S %p. If t_fmt_ampm is empty in the LC_TIME part of the current locale, then the * behavior is undefined. * * \%R Equivalent to %H:%M. * * \%S The second (0-60; 60 may occur for leap seconds; earlier also 61 was allowed). * * \%t Arbitrary whitespace. * * \%T Equivalent to %H:%M:%S. * * \%U The week number with Sunday the first day of the week (0-53). The first Sunday of Janu‐ * ary is the first day of week 1. * * \%w The ordinal number of the day of the week (0-6), with Sunday = 0. * * \%W The week number with Monday the first day of the week (0-53). The first Monday of Janu‐ * ary is the first day of week 1. * * \%x The date, using the locale's date format. * * \%X The time, using the locale's time format. * * \%y The year within century (0-99). When a century is not otherwise specified, values in the * range 69-99 refer to years in the twentieth century (1969-1999); values in the range * 00-68 refer to years in the twenty-first century (2000-2068). * * \%Y The year, including century (for example, 1991). * * Some field descriptors can be modified by the E or O modifier characters to indicate that an * alternative format or specification should be used. If the alternative format or specification * does not exist in the current locale, the unmodified field descriptor is used. * * * The E modifier specifies that the input string may contain alternative locale-dependent versions * of the date and time representation: * * \%Ec The locale's alternative date and time representation. * * \%EC The name of the base year (period) in the locale's alternative representation. * * \%Ex The locale's alternative date representation. * * \%EX The locale's alternative time representation. * * \%Ey The offset from %EC (year only) in the locale's alternative representation. * * \%EY The full alternative year representation. * * The O modifier specifies that the numerical input may be in an alternative locale-dependent for‐ * mat: * * \%Od or %Oe * The day of the month using the locale's alternative numeric symbols; leading zeros are * permitted but not required. * * \%OH The hour (24-hour clock) using the locale's alternative numeric symbols. * * \%OI The hour (12-hour clock) using the locale's alternative numeric symbols. * * \%Om The month using the locale's alternative numeric symbols. * * \%OM The minutes using the locale's alternative numeric symbols. * * \%OS The seconds using the locale's alternative numeric symbols. * * \%OU The week number of the year (Sunday as the first day of the week) using the locale's * alternative numeric symbols. * * \%Ow The ordinal number of the day of the week (Sunday=0), * using the locale's alternative numeric symbols. * * \%OW The week number of the year (Monday as the first day of the week) using the locale's * alternative numeric symbols. * * \%Oy The year (offset from %C) using the locale's alternative numeric symbols. * *@section AUTHOR *Written by Yann Weber <yann.weber@members.fsf.org> * *@section COPYRIGHT *Copyright © 2017 Weber Yann License GPLv3+: GNU GPL version 3 or later *<http://gnu.org/licenses/gpl.html>. * *This is free software: you are free to change and redistribute it. *There is NO WARRANTY, to the extent permitted by law. * */ /**@mainpage * *Super options : -d -r -p -v -m */