2011-09-21 65 views
0

这可能是一个常见问题,但搜索引擎在搜索非字母数字字符时非常可怕。

我有一堆包含标准版本控制$ Id $ tag/comment的代码。我需要一种简单的方法从目录结构中的每个文件中删除(清除,剥离)所有这些标记。

具体来说,这是一个PHP脚本(phpBB的是具体的),所以看起来是这样的:

<?php 
/** 
* 
* @package acp 
* @version $Id: acp_attachments.php 8479 2008-03-29 00:22:48Z naderman $ 
* 
*/ 
?> 

我想换行是这样的:

* @version $Id: acp_attachments.php 8479 2008-03-29 00:22:48Z naderman $ 

所以行变成:

* @version $Id$ 


请记住,我在窗口s,所以我无法使用Linux命令进行查找/替换。但我确实有能力运行PHP来处理所有文件。

+1

为什么? – zerkms

+0

有许多项目允许您在Windows上使用常见的Linux实用程序(如grep和sed)。此外,Power Shell同样强大。 – cdeszaq

回答

0

你可以使用Perl吗?这里是我使用的cvs-clean脚本:

#!/usr/bin/perl 

use strict; 
use warnings; 

while (<>) { 
    s/\$([A-Z][a-z]+):[^\$]*\$/\$$1:\$/g; 
    print; 
} 

它将标准输入过滤到标准输出。这不是正好你要求什么;它将$Id: blah $更改为$Id:$。删除s///命令中的最后一个:以更改该命令。

如果你不能使用Perl,把它翻译成PHP是一个练习。

2

。您可以使用grepWin使用这个表达式窗口:

搜索:\$Id\$

注:首先使所有文件的备份之前\$Id\: .+ \$$

与更换这样做