Там какой-либо простой путь состоит в том, чтобы изменить одну строку в большом количестве файлов?

Не то, чтобы я знаю. Однако можно найти .spec файлы в сети для создания параллельных версий Python, где все файлы об/мин называют что и т.д. Затем значение по умолчанию python исполняемый файл является все еще Вашим поставщиком один, который не должен быть изменен, или можно повредить очень важные вещи, как rpm самостоятельно (я говорю на основе опыта).

Обратите внимание, что запуск с RHEL5 (у меня нет опыта с 6), rpmbuild "предварительно скомпилирует" Python в любом об/мин. Это - известная ошибка, что они отказываются фиксировать это, это испортит %files раздел. Так или иначе проблема состоит в том, что файлы будут предварительно скомпилированы с запасом Python ОС, который является действительно раздражающим, потому что затем Вы получаете "Плохое Магическое число" ошибки, при попытке использовать их. Необходимо изменить некоторые сценарии конфигурации об/мин, но у меня нет информации передо мной.

1
16.04.2012, 19:13
2 ответа

Я не уверен, что не помогло Вам в ссылке Вы если, но sed походит на правильный инструмент для этого. Это поддерживает замены регулярного выражения, и если Вы передаете его -i это изменит оперативные файлы:

$ sed -i 's/@author Olivier Pons/& <olivier.pons@gmail.com>/g' /path/to/your/file /path/to/another/file ...

( & в замене стенография, которая означает, "включают все соответствие"),

7
27.01.2020, 23:13
  • 1
    Обертывание в find /where/your/files/live -type f -name '*.php' -exec sed -i s/see/above {} \; должен иметь дело со всеми из них, я предполагаю, что –  sr_ 16.04.2012, 17:34
  • 2
    Там какой-либо путь состоит в том, чтобы заменить использование регулярного выражения (неважно, количество пробелов между автором и "olivier мост") и заменить только первое найденное соответствие? –  Olivier Pons 16.04.2012, 17:58
  • 3
    @OlivierPons, Это несколько более сложно с тех пор sed предназначается для работы на строку, не на файл, но это должно работать: sed '0,/@author \+Olivier Pons/ s/@author \+Olivier Pons/& <olivier.pons@gmail.com>/' –  Michael Mrozek♦ 16.04.2012, 18:07

Я думаю, что Вы могли использовать sed.

Например.

sed -i "s/@author Olivier Pons/@author Olivier Pons <olivier.pons@gmail.com>/g" `grep "@author Olivier Pons" -rl YOUR_FILE_DIR`
0
27.01.2020, 23:13
  • 1
    Не делайте замены команды использования (ab) как этот. Это хрупко и неэффективно и find(1) уже существует с этой целью. –  jw013 16.04.2012, 23:30

Теги

Похожие вопросы