如何检查同一行中是否有双打?

时间:2013-04-05 08:49:04

标签: regex date vim

我有一个包含许多行的文本文件:

IMG_0106.JPG    y:\2004_05_23_bern basel\       2004_05_23
IMG_0107.JPG    y:\2004_05_23_dortmund\         2004_05_23
IMG_0108.JPG    y:\2004_05_25_paris\            2004_05_24
IMG_0110.JPG    y:\2004_05_25_paris\            2004_05_25

我想检查同一行中是否有双日期 什么地方没有。

第1,2,4行有一个日期匹配 第3行没有日期匹配(2004_05_25!= 2004_05_24)

我知道如何找到双线但我不知道在这种情况下如何在同一条线上找到双打。
有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

这应该有效:

grep '\([0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}\).*\1'

答案 1 :(得分:1)

带有正则表达式的:g命令会为您提供重复日期的行,您可以在这些行上执行操作:

:g/\v(\d{4}_\d{2}_\d{2}).*\1

如果你只想找到它们,(或用hlsearch突出显示它们),只需/sameRegex