【问题标题】:Rearrange namespace declaration in every file重新排列每个文件中的命名空间声明
【发布时间】:2019-06-02 08:50:57
【问题描述】:

我正在寻找一种方法来重新排列与模式匹配的文本字符串,以及将所有内容小写。

例如,在我的代码库中,我有“app\Services\PropertyTax”。我想用“Acme\modules\propertytax\services”替换它。

“app”之后只会有两个级别,并且新格式化的字符串的顺序总是交换和小写。

app\Entities\HumanResources => Acme\modules\humanresources\entities

等等

寻找一种在特定目录中的每个文件中执行此操作的方法。

提前致谢。

【问题讨论】:

  • 你在哪里卡住了?
  • 你试过什么?什么没用?你得到了什么?你期待什么?什么不适用于您的代码,它在哪里?

标签: regex awk sed


【解决方案1】:

试试 awk

find . -exec gawk -i inplace -v INPLACE_SUFFIX=.bak -F\\ '/app\\.*\\.*/ {print "Acme\\modules\\"tolower($3)"\\"tolower($2)}' {} \;


这将替换文件并使用 .bak 文件名后缀存储原始文件的备份。

如果要删除备份文件

find . -regex ".*bak" -type f -exec rm -f {} \;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 2011-04-05
    • 2012-07-27
    • 2011-01-31
    • 1970-01-01
    相关资源
    最近更新 更多