2013-08-12 2 views
1

У меня есть 100-миллионная линия, разделенная табуляция файл с номерами в графах 2 и 3.AWK: один лайнер рассчитать округлое среднее из двух столбцов

d1 1 4 
g7 4 5 
y3 11 20 

Я хотел бы заменить столбец 2 с округлое среднее графов 2 и 3, и заменить столбец 3 с колонкой 2 + 1.

d1 3 4 
g7 5 6 
y3 16 17 

есть вычислительно эффективный AWK один лайнер, чтобы сделать это на больших файлах?

ответ

3

Это, казалось бы, очевидная реализация:

awk '{a=int(($2+$3)/2+0.5); $2=a; $3=a+1;print}' 
+0

При условии, что OFS установлено правильно, конечно ... – andrewdotnich

Смежные вопросы