如何以复杂的模式 grep 日期?

How can I grep date in complex pattern?

我有这样一行:

...XXX_YYY_ZZZ_201504072235_AAA...

我可以像这样使用 grep 获取日期:

grep -oP '(?<!\d)201\d{9}'

但是我有这样一行,我不能使用 grep 因为 _ 字符:

...XXX_YYY_ZZZ_20150407_2235_AAA...

我可以使用 grep yearmonthday

grep -oP '(?<!\d)201\d{5}'

如何为 yearmonthdayhourminute 使用 grep?

这个怎么样

grep -oP '(?<!\d)201\d{5}_\d{4}'

如果您同时拥有两种模式:

grep -oP '(?<!\d)201(\d{9}|\d{5}_\d{4})'