【发布时间】:2014-05-24 20:24:47
【问题描述】:
我正在寻找一种从我下载的各种报表 PDF 中提取报表日期的方法。
使用 mdimport -d2(在 Mac 上)我可以获得文件的 Spotlight 索引元数据,其中包括一个名为 kMDItemTextContent 的字段,其中包含 PDF 的所有文本。
现在我需要创建一组规则来从该文本中提取语句日期,该日期因文件而异,并将其转换为标准的yyyy-mm-dd 格式。
我不确定是否应该使用sed 或grep 或awk ...以及使用什么参数。
以下是文本的相关部分和期望结果的一些示例:
Jan. 23, 2014 31 Days in Billing Cycle -> 2014-01-23
Service period 02/03 - 03/02 -> 2014-03-02
Statement Date: February 3, 2014 -> 2014-02-03
Statement Closing Date 04/04/2014 -> 2014-04-04
Statement Period Jan 6 - Feb 5, 2014 -> 2014-02-05
【问题讨论】:
-
鉴于数据格式千差万别,您最好单独匹配每个格式,而不是尝试制作一个 frankenregex 来尝试捕获所有格式。
-
是的,我想我需要为每个人制定一个单独的“规则”。我愿意这样做,但我应该使用哪个命令?只是在寻找一个起点。
-
sed/awk 可能。 grep 可以匹配文件,但它用于提取文本行,而不是“行块”。不确定 awk 和 sed 的日期生成/格式化功能是什么,但最后它们可以提取相关值,以便您可以将其提供给
date之类的东西进行格式化。 -
你能给我举一个 sed/awk 的例子吗?至少要取出日期部分?