Unix 中日期的正则表达式

标签 regex linux date

我想在 Linux 中使用 shell 脚本搜索文件中所有出现的以下格式的日期。

Apr 24 2014

最佳答案

方法 0 — 普通的旧 sed

sed -n '/\(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\) [0-9]\{2\} [0-9]\{4\}/p'

最好准确指定每个可能的月份。

方法 1 - 使用 grep 扩展 RE

grep -E '(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{2} [0-9]{4}'

-E 开关对于使 grep 将模式解释为扩展的正则表达式是必要的,并且语法更加简单。

方法 2 — 主题变化

awk '$0 ~ /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{2} [0-9]{4}/ 1'

awk 附带开箱即用的扩展 RE!

方法 3 — 让我们利用 Perl 的强大功能。

通过Regex::Common::time可以最轻松地完成手头的任务。模块。当然,您需要安装它。

perl -MRegexp::Common -MRegexp::Common::time -nle '/$RE{time}{mdy}/ && print'

关于Unix 中日期的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23357538/

相关文章:

c++ - 如何使用 howardhinnant 的 C++ 日期库格式化 UTC 时间字符串

java - 如何转换 2019-03-26T04 :31:40-05:00 like string into timestamp in Java?

Java - 用户输入字符串,使用 native 方法打印2d String [][]

javascript - Livecycle RegExp - 小数的问题

linux - 生成 Linux 模块的压缩包?

linux - airmon-ng将wlan0更改为wlan0mon,但不还原

python - 在 Django 中解析 json 中的日期

Java正则表达式解释

r - 如何使用 POS 标记的正则表达式提取字符串

python - Tkinter 的 overrideredirect 阻止了 Mac 和 Linux 中的某些事件