vim匹配查找重复的行

  • warning: call_user_func_array() expects parameter 1 to be a valid callback, function '_imagecache_menu_access_public_files' not found or invalid function name in /var/www/drupal-6.28/includes/menu.inc on line 454.
  • warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'views_access' not found or invalid function name in /var/www/drupal-6.28/includes/menu.inc on line 454.
  • warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'views_access' not found or invalid function name in /var/www/drupal-6.28/includes/menu.inc on line 454.
  • warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'views_access' not found or invalid function name in /var/www/drupal-6.28/includes/menu.inc on line 454.

原来对文件中重复行的处理就是用Vim的命令sort u进行删除,不过有个缺点是不知道具体哪些内容有重复,其实Vim中可以直接查找匹配重复的行,那么对文件中重复的内容就一目了然了。

匹配重复行的正则表达式其实很简单,用如下的的代码进行匹配就可以了:

^\(.*\)\(\n\1\)\+$

 \+是代表匹配>1个,\1代表是前面的匹配,那么可以看出上面的正则表达式匹配了整个行(不包括换行符),然后加上\n\1,匹配\n\1 >1次,最后匹配到最后一个重复行行尾的换行符,从而匹配到所有重复行。

下面是Vim匹配重复行的截图:

参考: