我的目录中有一些文件包含以下格式的日期:
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/'