将多个文件中的“月日期时间”格式的日期替换为“月年日期时间”格式的日期

将多个文件中的“月日期时间”格式的日期替换为“月年日期时间”格式的日期

我的目录中有一些文件包含以下格式的日期:

December 29 19:05:58

但它们在文件创建日期方面有所不同。

有没有办法对这些文件进行搜索替换,将日期替换为如下所示的日期:

December 29 2010 19:05:58

我在使用 Mac OS X。

编辑:澄清一下,任何脚本都可以,例如:sed或 shell/ruby 脚本。

答案1

我认为,如果没有强大的文本编辑器或一些脚本,这是不可能的。


在 TextMate 中使用以下正则表达式:

搜索:

(January|February|March|April|May|June|July|August|September|October|November|December) (\d{1,2}) (\d{2}:\d{2}:\d{2})

用。。。来代替:

$1 $2 2010 $2

根据文件数量,编写脚本会更快。如果工作量不是太大,我会选择 TextMate 之类的编辑器——这样,您可以在保存之前检查每个替换。


为了完整起见:

cat src.txt | sed "s/\([A-Z][a-z]\{1,\} [0-9]\{1,2\}\) \([0-9][0-9]:[0-9][0-9]:[0-9][0-9]\)/\1 2010 \2/g" > dest.txt

经常使用的人sed现在可能会笑,我不在乎。

答案2

尝试这个(对于 OS X,将 替换-r-E):

sed -r 's/(January|February|March|April|May|June|July|August|September|October|November|December)( [0-9 ][0-9] )(([0-9][0-9]:){2}[0-9][0-9])/\1\22010 \3/'

相关内容