通过 Linux 命令更新所有 Python 文件

通过 Linux 命令更新所有 Python 文件

在我的原始 Python 文件中,有以下内容:

from official.utils.flags import _base

我需要将其更改为:

from utils.flags import _base

我的文件结构如下:

.
├── README.md
├── requirements.txt
├── setup.py
└── trainer
    ├── __init__.py
    ├── task.py
    ├── task_eager.py
    ├── dataset.py
    └── utils

我的所有 Python 文件都位于 utils 文件夹下。我尝试过:

find . -type f -exec sed -i -e "s/from official./from /g" {} +

但我看到创建了一堆新文件:

test.py             test.py.py          test.py.py.py           test.py.py.py.py        test.py.py.py.py.py     test.py.py.py.py.py.py
test.py-e           test.py.py-e            test.py.py.py-e         test.py.py.py.py-e      test.py.py.py.py.py-e       test.py.py.py.py.py.py-e

答案1

建议删除,-e因为在这种情况下它确实没有必要。

此外,它看起来像是-e被选项吞噬了-i,因为备份文件的后缀将像filename-e您的代码片段中显示的那样。

find如果您的命令行中有-i-e(即忘记了两个参数之间的空格)而不是您在此处发布的内容,也可能会发生这种情况。

相关内容