Следующий синтаксис Perl заменяет OLD на NEW, но не если цифра существует до или после слова OLD.
OLD=ABBA1 ; export OLD
NEW=OBAMA1 ; export NEW
perl -i -pe 'next if /^ *#/; s/(\b|\D)$ENV{OLD}(\b|\D)/$1$ENV{NEW}$2/g' file
Мой вопрос:
Я также не хочу заменятьСТАРЫЙ с НОВЫМ, если буквы z или AZ существуют до или после СЛОВОГО слова.
Посоветуйте, пожалуйста, как изменить мой синтаксис Perl, чтобы сделать это?
Примеры (из которых старое слово нужно заменить на NEW):
ABBA1R - not replace
QABBA1 - not replace
ABBA1W - not replace
@ABBA1 - replace ABBA1 with OBAMA1
ABBA1= - replace ABBA1 with OBAMA1
ABBA1w - not replace
4ABBA1 - not replace
ABBA11 - not replace
e ABBA1 - replace ABBA1 with OBAMA1 (remark between e to ABBA1 I have space)
ABBA1 p - replace ABBA1 with OBAMA1 (remark between ABBA1 to p I have space)
?ABBA1 - replace ABBA1 with OBAMA1
_ABBA1_ - replace ABBA1 with OBAMA1