Как я могу использовать sed, чтобы заменить всю печать «пример» в репо с печатью («пример»)? - PullRequest
0 голосов
/ 10 марта 2020

Как вы, наверное, догадались, я использую пакет, который был собран с использованием Python 2 на Python 3, и мне нужно внести некоторые изменения, чтобы он заработал. Я спросил вокруг, и кто-то предположил, что sed - лучший вариант. Хотя я не совсем уверен, как его использовать. Кто-нибудь может помочь? Заранее спасибо.

Я хочу заменить все экземпляры print 'example' на print('example')

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

Я думаю, что у нас есть так называемая проблема XY здесь. Вы можете использовать sed, чтобы заменить print операторы (как в Python 2) на print функции (как в Python 3), однако между Python 2 и Python есть и другие различия 3, поэтому даже если вы управляете изменениями print s, ваш код может работать не так, как задумано. Я предлагаю вам попробовать 2to3 инструмент преобразования.

0 голосов
/ 10 марта 2020
sed "s#'.*'#(&)#g"

объяснение:

sed "  <-- Use double quote for marking start and end 
s# <-- # is delimter
'.*' <--  Regex pattern. Start with ' followed by any char till '
#(&)#g" <-- Matched pattern is stored in & 

Демо:

:>echo "print 'example'" | sed "s#'.*'#(&)#g"
print ('example')
:>

...