我将这个grep用于日期:
grep -oP '(?<!\d)201\d{9}'
它为此工作:
xxx_yyy/zzz/www201504091545-xxx.tar.gz
但是当行没有201时,我无法grep日期值,如下所示:
/data/xxxx/yyyy/zzzz/T111504091545.ZET.gz
/data/xxxx/yyyy/zzzz/Z251504081345.YAT.gz
/data/xxxx/yyyy/zzzz/ZT51504071235.YAT.gz
/data/xxxx/yyyy/zzzz/ZA51403021131.YAT.gz
1504 ....是日期值(或1403,1404 ......)。日期值之后有.ZET.gz或.YAT.gz。
在日期之前,有3个字符(数字和/或没有)。
我该怎么做?谢谢。
输出:
1504091545
1504081345
1504071235
1403021131
答案 0 :(得分:1)
您可以使用此grep
:
grep -oP '\d{10}(?=\.)' file
1504091545
1504081345
1504071235
1403021131
或根据您的问题限制更多:
grep -oP '\d{10}(?=\.(YAT|ZET))' file