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

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

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

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

Благодарю.

  • Извлечение информации о трассировке с помощью gawk
  • Может ли Awk читать экранированные строки? Т.е. читать прошлые строки
  • Как использовать awk для печати только строк, содержащих 5 столбцов
  • gawk inplace и stdout
  • Необходимо отфильтровать данные на основе двух столбцов, имеющих много отношений, используя awk
  • Самый эффективный способ сделать полмиллиона операций математики ежечасно
  • Как добавить / добавить временную метку для вывода grep?
  • Добавить строку в файл конфигурации из сценария bash?
  • One Solution collect form web for “Как заменить последнее совпадение на строку”

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

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

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