AWK: заменить и записать значение столбца во входной файл

Я пытаюсь заменить $3 значения столбца входного файла, если $3 > 100. Я пробовал:

awk 'BEGIN {FS="\t"} {if($3 > 100) $3=$3/100;print}' test.stat

Это выводит правильные изменения в стандартный вывод, но мне нужно, чтобы изменение записывалось во входной файл (test.stat), чтобы значения остальные поля/записи остаются без изменений. Любое предложение?

Спасибо. Возникла другая проблема. У меня есть переменная «счетчик», сумма которой должна быть напечатана в блоке END. Я пробовал:

awk 'BEGIN {FS="\t",counter=0} 
{if($3 > 100) $3=$3/100;print else counter++}
END{print counter}' test.stat > ...

Теперь в файл записывается только значение счетчика, а не значения $3. Как я могу разделить два вывода, чтобы один изменял файл, а другой сохранялся как переменная bash с помощью команды чтения. Спасибо.

12
задан jaypal singh 5 July 2013 в 22:46
поделиться