Вот мое решение
awk -v count=0 -v replace=76 -v replaceWith=91 'count==0&&$4==76{gsub("^" replace "$", replaceWith, $4); count++}1' sourceFile
используются три переменные count
, replace
и replaceWith
count
- для подсчета числа поисковых запросов. Я увеличил значение после того, как нашел условие поиска replace
и убедился, что больше не возвращаюсь в действие с помощью выражения count == 0
replace
может быть любым значением из списка ... не должно быть жестко закодировано.
Как и в случае с replaceWith
, вы хотите заменить значение на
Результат
awk -v count=0 -v replace=76 -v replaceWith=91 'count==0&&$4==76{sub("^" replace "$", replaceWith, $4); count++}1' sourceFile
54 679 75 98 21
24 543 86 98 43
42 543 54 98 55
93 255 25 98 25
43 523 43 98 31
98 775 24 91 78
77 564 65 76 45
изменил скрипт после обратной связи. заменено gsub
на $4 = replaceWith
awk -v count=0 -v replace=76 -v replaceWith=91 'count==0 && $4==replace{$4 = replaceWith; count++}1' sourceFile
54 679 75 98 21
24 543 86 98 43
42 543 54 98 55
93 255 25 98 25
43 523 43 98 31
98 775 24 91 78
77 564 65 76 45