Как заменить последнее совпадение на строку

Учитывая регулярное выражение и строку замены, как я могу использовать awk для реализации следующего:

  • если строка не содержит совпадений, ничего не делает;
  • если строка содержит более одного совпадения, замените последнее соответствие на заменяющую строку в смысле последнего совпадения, которое будет заменено на gsub() ;
  • если строка содержит ровно одно совпадение, замените совпадение на заменяющую строку.

Например, см. «Неожиданный символ» \ «в gawk

Благодарю.

One Solution collect form web for “Как заменить последнее совпадение на строку”

Используйте свой шаблон как разделитель полей awk '-F "PATTERN' и добавьте условие, если количество feilds> 2 (NF> 2) означает, что ваш шаблон является точным только один раз, это n = 1 раз, а затем распечатать все feilds, кроме последнего один, когда вы снова установите FS = OFS = «PATTERN», затем распечатайте поле «replaceString» и конец печати в последний раз, не нужно gsub.

надеюсь, что вы получите идею

  • Утечка памяти gawk в частоте слова
  • awk для обработки строк с нулями по столбцам
  • Почему более новые версии awk печатают большие целые числа вместо десятичных знаков?
  • Условное предложение if в awk
  • Файл анализа с Awk только в том случае, если первая строка соответствует шаблону
  • разбор нескольких полей csv с gawk на solaris
  • как конкатенировать следующую строку, когда условие истинно awk
  • Как получить значение последнего дня в текущем месяце в awk
  • Почему awk говорит «синтаксическая ошибка» для запятой, которую я установил между двумя шаблонами?
  • awk для разделения входного файла на 2 файла (один для дублированных значений и один для уникальных значений)
  • текстовая обработка (чтение и вычисление из двух файлов)
  • Могу ли я определить тип переменной awk?
  • Interesting Posts

    как сгенерировать список установленных пакетов из полной резервной копии системы?

    Скрыть make-объекты из оболочки, когда пользователи автозаполняются в bash

    Установка libxcb из источника

    Добавить пробел перед заглавной буквой

    Формат вывода ps без пробелов

    исключить некоторые комбинации клавиш из-за того, что они передаются через rdesktop

    Установите содержимое папки в другую.

    Какой формат представляет собой почтовые утилиты file / var / mail / username

    Поиск уникальных строк на основе только раздела

    Почему Root не удается получить доступ к каталогу FreeBSD?

    Как написать скрипт, который может принимать входные данные из stdout

    Создайте символическую ссылку рекурсивно, если файл 1.JPG существует, переименуйте его в 1A.JPG

    Как заставить ghostscript не стирать метаданные PDF

    Как устранить необходимость обновления моего дистрибутива?

    Gentoo, похоже, не загружает новое ядро

    Linux и Unix - лучшая ОС в мире.