awk, не печатая новую строку

Я хочу, чтобы переменная СУММА/НОМЕР была распечатана бок о бок в каждом повторении. Как мы избегаем awk от печати новой строки в каждом повторении? В моем коде новая строка печатается по умолчанию в каждом повторении

for file in cg_c ep_c is_c tau xhpl
printf "\n $file" >> to-plot.xls
    for f in 2.54 1.60 800 
        awk '{sum+=$3}; END  {print  sum/NR}' ${file}_${f}_v1.xls >> to-plot-p.xls
    done
done

Я хочу, чтобы вывод появился как это

cg_c ans1  ans2  ans3  
ep_c ans1  ans2  ans3 
is_c ans1  ans2  ans3
tau  ans1  ans2  ans3 
xhpl ans1  ans2  ans3

мой ток, помещенный, похож на это

**cg_c**
ans1
ans2
ans3
**ep_c**
ans1
ans2
ans3
**is_c**
ans1
ans2
ans3
**tau**
ans1
ans2
ans3
**xhpl**
ans1
ans2
ans3
155
задан Jacob Krall 7 January 2010 в 20:31
поделиться

3 ответа

awk '{sum+=$3}; END {printf "%f",sum/NR}' ${file}_${f}_v1. xls >> to-plot-p.xls

print по умолчанию вставит новую строку. Вы не хотите, чтобы это произошло, поэтому вместо этого используйте printf.

.
202
ответ дан 23 November 2019 в 21:55
поделиться

в одну сторону

awk '/^\*\*/{gsub("*","");printf "\n"$0" ";next}{printf $0" "}' to-plot.xls
5
ответ дан 23 November 2019 в 21:55
поделиться

Переменная ORS (разделитель выходных записей) в AWK по умолчанию имеет значение "\n" и выводится после каждой строки. Вы можете изменить ее на " " в разделе BEGIN, если хотите, чтобы все распечатывалось последовательно.

71
ответ дан 23 November 2019 в 21:55
поделиться
Другие вопросы по тегам:

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