O primeiro printf
é acrescentar o caractere #
a cada linha do arquivo de entrada, que em awk
é representado por $0
e, em seguida, a linha modificada (com #
adicionado antes) é impressa para o console usando a cláusula print
.
Você poderia simplesmente ignorar um e executá-lo na linha de comando para ver qual deles faz o quê.
seq 1 5 | awk '{ printf "# "; print; }'
# 1
# 2
# 3
# 4
# 5
Talvez seja possível escrever simplesmente com printf
sozinho ou apenas com print
sozinho como
awk '{ printf "# %s\n" , $0 }'
Você precisa do caractere de nova linha \n
porque printf
não imprime por padrão.
awk '{ print "# "$0 }'