【问题标题】:Removing unnecessary import from a whole project从整个项目中删除不必要的导入
【发布时间】:2014-06-19 09:20:33
【问题描述】:

最近在工作中,我们有一位实习生在她的项目中创建了很多不必要的文件,我正在清理项目以尝试挽救它,但是,我遇到了一些麻烦。

例如,我想从项目中的所有文件中删除以下代码行(幸好它们是一致的):

<?php
include('includes/footer.php');
?>

我愿意在 eclipse 或 sed 上执行此操作,我已经尝试过两者都无济于事,我已经在另一个项目中完成了使用 sed 删除包含行的项目,但最终我得到了一堆空的php标签,我希望你们能帮助我找到一个我可以使用的解决方案,并牢记前进。

谢谢

【问题讨论】:

  • \&lt;\?php\s*(include[^\;]+\;\s*)+\?\&gt; 这应该会捕获它们,可能需要添加多行修饰符。
  • 如我的回答中所说,使用 eclipse 进行替换。

标签: php linux eclipse replace sed


【解决方案1】:

sed 用于单行上的简单替换。对于跨越多行的任何内容,请使用 awk。这是将 GNU awk 用于多字符 RS:

$ cat file
foo
<?php
include('includes/footer.php');
?>
bar
$ awk -v RS="^$" -v ORS="" '{sub(/<[?]php\ninclude[(]\047includes[/]footer.php\047[)];\n[?]>\n/,"")}1' file
foo
bar

在搜索 RE 中,它在 RE 元字符周围使用 [],因此它们被视为文字字符,并使用 \047 作为单引号 ',因为您不能在分隔的脚本中使用单引号用单引号。

【讨论】:

    【解决方案2】:

    使用搜索对话框。 在 Package/Project/Navigator 视图中选择项目,然后按 Ctrl + H

    输入正则表达式如图。另请注意,我选择了 Selected resources 选项并在包资源管理器中选择了 com.chandrayya.... 项目。

    搜索按钮。您将在搜索视图中获得所有结果。

    激活搜索视图并按全部折叠按钮以折叠所有搜索结果,然后按 Ctrl + A 在搜索视图中选择所有搜索结果。右键单击选择并选择Replace All.. 选项,然后您将看到如下所示的对话框。在 With 文本框中输入一个空格字符,然后按 OK 按钮。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-28
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多