Я хочу, чтобы переменная СУММА/НОМЕР была распечатана бок о бок в каждом повторении. Как мы избегаем 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
awk '{sum+=$3}; END {printf "%f",sum/NR}' ${file}_${f}_v1. xls >> to-plot-p.xls
print
по умолчанию вставит новую строку. Вы не хотите, чтобы это произошло, поэтому вместо этого используйте printf
.
в одну сторону
awk '/^\*\*/{gsub("*","");printf "\n"$0" ";next}{printf $0" "}' to-plot.xls
Переменная ORS (разделитель выходных записей) в AWK по умолчанию имеет значение "\n" и выводится после каждой строки. Вы можете изменить ее на " " в разделе BEGIN
, если хотите, чтобы все распечатывалось последовательно.