bash - awk - 仅从文本文件中过滤特定格式的日期
问题描述
我在 macOS 上有一个包含多行文本的 .txt 文件。我想只过滤日期并将它们按出现的顺序逐行保存在新的文本文件中。
但是,我对所有日期不感兴趣,只对那些完整的日期感兴趣,看起来像 02/03/2019,以及天数低于 13 的日期,即 01...12。
然后,我想删除那些日期和月份数字相同的日期,例如 01/01/2019 和 02/02/2019 等。
如何awk
在 bash 中使用或类似的软件来实现这一点?
解决方案
如果 perl 是一个选择:
perl -ne 'print if m:(\d\d)/(\d\d)/(\d\d\d\d): && $1 < 13 && $1 != $2' dates.txt >newdates.txt
这假定这种格式/dd/mm/yyyy
请注意,我使用的是m: :
符号而不是通常/ /
的正则表达式匹配。因此我不需要逃避/
日期中的斜线。
推荐阅读
- xamarin - Xamarin FORms 路由在 Shell 中传递参数
- java - 在JAVA中使用多个条件执行while循环
- kubernetes - 2 个服务之间的 Kubernetes 负载平衡
- reactjs - 用输入类型号反应 isNaN
- c++ - 没有匹配函数调用 'QtCharts::QLineSeries::append(int&,Date&)
- pandas - 组内自动递增
- mysql - MYSQL中选择多个值的MAX函数
- javascript - 如何使用 :before 设置图像并使用 css 设置数据属性
- sql - SQL Server WHERE 子句:列是 NULL 或列 = 参数值
- python - 有没有办法获取我可以通过 python 在本地网络上连接的所有 IP 地址和主机名的列表