awk '/^[0-9]{2}[.][0-9]{2}[.][0-9]{4}/ {DATES[$1]++}
END{ for(d in DATES) {print d} }'
Unlike rock, paper, scissors: awk always beats sed. :-)
Edit: here is is in action:
$ cut -b-60 t
15.04.2016 13:13:30,228 INFO [wComService] [mukumukuko@sy
15.05.2016 13:14:10,886 INFO [wComService] Call 5303 from
15.06.2016 13:14:20,967 INFO [AddressTranslatorService][m
15.07.2016 13:14:20,992 INFO [wComService] [mukumukuko@sy
15.04.2016 13:15:18,760 INFO [OSMCService] SessionManager
this file contains the activity log of 1 week, so in the fil
The file can have also these outputs from Java exception:
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanE
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl
at org.apache.xerces.parsers.XML11Configuration.parse(Un
at org.apache.xerces.parsers.XML11Configuration.parse(Un
$ awk '/^[0-9]{2}[.][0-9]{2}[.][0-9]{4}/ {DATES[$1]++}
END{ for(d in DATES) { print d } }' t
15.07.2016
15.06.2016
15.04.2016
15.05.2016
That's GNU awk. If your version of awk doesn't produce output, it's probably because its regular expression implementation is different, and doesn't match any lines. It might not support braces as a repetition specifier, for example. At the cost of lost specificity, you could simplify the regex to /^[0-9]/, which will definitely work. That will catch the dates and eliminate the log messages, but might snag some non-dates, too.
Some experimentation and time with your friendly awk manual may prove fruitful. ;-)