gpt4 book ai didi

python - 替换文件名、文件夹名称和文件内容中出现的内容

转载 作者:太空宇宙 更新时间:2023-11-03 18:19:00 24 4
gpt4 key购买 nike

我的文件夹和文件具有以下结构,其中一些文件包含字符串 ModuleName

ModuleName
├── Application\ Logic
│   └── Interactor
│   ├── ModuleNameInteractor.swift
│   └── ModuleNameInteractorIO.swift
├── Module\ Interface
│   └── IModuleNameModule.swift
└── User\ Interface
├── Presenter
│   └── ModuleNamePresenter.swift
├── View
│   ├── IModuleNameView.swift
│   └── ModuleNameViewController.swift
└── Wireframe
└── ModuleNameWireframe.swift

我想使用 Linux 或 python 脚本将文件夹名称、文件名和文件内容中出现的所有 ModuleName 替换为另一个名称(假设为 TestModule) .

我尝试使用find命令,但将文件夹重命名为子文件夹/子文件没有这样的文件或目录

最佳答案

我将使用 sed -i (就地替换)进行内容替换,并使用 find|while read 循环进行重命名。

这是 BSD sed(Mac 上的标准)版本:

find . -type f -exec sed -e s/ModuleName/TestModule/g -i '' '{}' ';'
find . -depth -name '*ModuleName*' -print0|while IFS= read -rd '' f; do mv -i "$f" "$(echo "$f"|sed -E 's/(.*)ModuleName/\1TestModule/')"; done

这是 GNU sed:

find . -type f -exec sed -e s/ModuleName/TestModule/g -i '{}' ';'
find . -depth -name '*ModuleName*' -print0|while IFS= read -rd '' f; do mv -i "$f" "$(echo "$f"|sed -r 's/(.*)ModuleName/\1TestModule/')"; done

读取时的额外细节是正确处理任意文件名——带有空格和其他奇怪字符的名称。一些快速测试表明 zsh read 现在可以正确处理以 null 结尾的字符串;如果您遇到问题,请尝试在 bash 中运行它。

关于python - 替换文件名、文件夹名称和文件内容中出现的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24494336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com