Назад | Перейти на главную страницу

Обновите все файлы Python с помощью команды Linux

В моих исходных файлах 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

Предложите удалить -e поскольку в этом случае это действительно не нужно.

Также это похоже на -e поглощается -i вариант в качестве суффикса для файла резервной копии будет сделан как filename-e как показано в вашем фрагменте.

Это также может произойти, если в вашем find командная строка a -i-e (т.е. забыл пробел между двумя параметрами) вместо того, что вы разместили здесь.