Используя sed, как я могу заменить два шаблона в большем шаблоне на одной строке?
Учитывая одну строку текста, я хочу найти шаблон (назовем это внешним шаблоном), а затем в этом внешнем шаблоне заменить два внутренних шаблона.
Вот пример однострочного ввода текста:
Z:\source\private\main\developer\foo\setenv.sh(25): export 'FONTCONFIG_PATH'="$WINE_SHARED_SUPPORT/X11/etc/fonts"
В приведенном выше примере внешним шаблоном является /^.*\([[:digit:]]+\):/
который должен быть равен Z:\source\private\main\developer\foo\setenv.sh(25):
Два внутренних шаблона:/^[A-Za-z]:/
и /\\/
.
Другой способ сформулировать мой вопрос:
Используя sed, я знаю, как выполнять замены шаблона с помощью команды s
, но как мне ограничить диапазон команды s
чтобы она работала только на части входной строки до (25):
Конечный результат, который я пытаюсь получить - строка текста преобразуется в это:
/enlistments/source/private/main/developer/foo/setenv.sh(25): export 'FONTCONFIG_PATH'="$WINE_SHARED_SUPPORT/X11/etc/fonts"