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

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

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

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

Благодарю.

  • Передача переменной временной метки из оболочки в gawk
  • Проблема с регулярным выражением в gawk ('\ <' не работает)
  • Сохраните AWK FNR как переменную Bash, чтобы продолжить поиск из строки
  • как использовать \ n (и) \ n как разделитель в awk
  • Могу ли я определить тип переменной awk?
  • Использование awk для обработки файла сопоставления с динамическим числом столбцов
  • Как найти слово и удалить его со следующей строкой
  • Извлечение информации о трассировке с помощью gawk
  • One Solution collect form web for “Как заменить последнее совпадение на строку”

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

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

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