Awk массив, заменить на совпадения ключей полной длины

Я рекомендую использовать limit и offset

MySQL Limit & amp; .

Здесь можно найти здесь .

1
задан Thierry Janssens 18 January 2019 в 22:13
поделиться

1 ответ

Попробуйте, пожалуйста, посмотрите, соответствует ли он вашим потребностям:

awk 'FNR==NR { le=length($1); a[le][$1]=$2; if (maxL<le) maxL=le; next } { for(le=maxL;le>0;le--) if(length(a[le])) for (i in a[le]) gsub(i, a[le][i]) }1'  "lookup.tab" "target.txt"

Он основан на ваших собственных попытках, но вместо случайной замены с использованием хэшей в массиве, сначала используйте более длинные ключи. [ 111]
Таким образом, и, основываясь на ваших примерах, я думаю, что этого достаточно, чтобы избежать ошибочных замен.

0
ответ дан Tiw 18 January 2019 в 22:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: