这可能是一个常见的问题,但搜索引擎在搜索非字母数字字符方面非常糟糕。
我有一堆代码,其中包含标准版本控制$Id$tag/注释。我需要一种简单的方法来从目录结构中的每个文件中删除(clean,strip(所有这些标记。
具体来说,这是一个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$
请记住,我在Windows上,所以我不能使用Linux命令来查找/替换。但我确实有能力运行PHP来处理我的所有文件。
在windows上,您可以使用以下正则表达式使用grepWin
:
搜索:'$Id': .+ '$$
替换为:'$Id'$
注意:执行此之前,首先备份所有文件
你会用Perl吗?这是我的cvs-clean
脚本,用于此:
#!/usr/bin/perl
use strict;
use warnings;
while (<>) {
s/'$([A-Z][a-z]+):[^'$]*'$/'$$1:'$/g;
print;
}
它过滤stdin到stdout。这并不是你所要求的;则将CCD_ 5改变为CCD_。删除s///
命令中的最后一个:
以更改它。
如果您不能使用Perl,那么将其转换为PHP只是一个练习。