The prototype of the function gensub()
in GAWK являетсяКаков тип аргумента «замена» в gensub() GAWK?
gensub(regexp, replacement, how [, target])
По моим наблюдениям из примеров,
regexp
является регулярное выражение, заключенное в слешиЯ видел в примерах строка в кавычках предоставляется
replacement
(см. пример ниже).Но он может содержать обратные ссылки на группы в совпадающей подстроке (смотрите пример ниже), который, кажется, мне, что тип
replacement
является регулярным выражением, и что строка в кавычках предоставляютсяreplacement
принуждается в регулярное выражение.Теперь я confused: что такое
replacement
, строка или обычное выражение ?
Могу ли я дать регулярное выражение, заключенное в слеши к
replacement
?Е.Г., из той же ссылке:
$ gawk ' > BEGIN { > a = "abc def" > b = gensub(/(.+) (.+)/, "\\2 \\1", "g", a) > print b > }' -| def abc
Могу ли я заменить
b = gensub(/(.+) (.+)/, "\\2 \\1", "g", a)
сb = gensub(/(.+) (.+)/, /\2 \1/, "g", a)
?Btw, что же
-| def abc
означает?
Спасибо. «замена - это строка с ограниченным набором метасимволов». Обратные ссылки на захваченные группы могут отображаться в 'replacement', но' replacement' указан как строка с кавычками. Является ли тип «замены» строкой, регулярным выражением или чем-то еще? – Tim
Это строка, как я уже говорил. Несколько символов в строке обрабатываются специально, но в остальном это строка. –
какие персонажи обрабатываются специально? – Tim