
В awk
чем разница между print
и printf
?
Есть ли какие-либо ограничения на использование только print
вместо printf
и наоборот?
решение1
Как говорится в руководстве GNU awk (gawk)http://www.gnu.org/software/gawk/manual/gawk.html#Печать
Используйте оператор print для создания вывода с простым стандартизированным форматированием. Вы указываете только строки или числа для печати в списке, разделенном запятыми. Они выводятся, разделенные одинарными пробелами, за которыми следует новая строка.
& и т. д.
Для более точного контроля над форматом вывода, чем тот, который предоставляется print, используйте printf. С помощью printf вы можете указать ширину, которую следует использовать для каждого элемента, а также различные варианты форматирования чисел (например, какую базу вывода использовать, печатать ли показатель степени, печатать ли знак и сколько цифр печатать после десятичной точки).
Итак, это в значительной степени объясняет различия и ограничения.
решение2
Распечатать:
- «Печать» сама по себе печатает введенную строку.
- «Print» с одним аргументом печатает аргумент.
- «Print» с несколькими аргументами печатает все аргументы, разделенные пробелами (или другими указанными OFS), если аргументы разделены запятыми, или объединенные, если аргументы разделены пробелами.
printf:
Функция "printf()" (форматированная печать) гораздо более гибкая и хитрая. Она имеет следующий синтаксис:
printf(<string>,<expression list>)
Разница:
Разница между printf и print заключается в аргументе формата. Это выражение, значение которого принимается как строка; оно указывает, как выводить каждый из других аргументов. Оно называется строкой формата.