Você está descrevendo um bom exercício para um iniciante no Linux, então eu não vou te dar uma lição de casa, mas vou responder para ajudar você a fazer isso.
Comece aprendendo como usar o comando date
, que é externo a awk
. O comando date
tem um recurso que pode gerar o dia da semana no formato numérico, portanto, se você digitar na linha de comando date +%u
, receberá o dia da semana de hoje, começando em segunda . Para o dia da semana de outro dia, use a opção d
, por exemplo, date -d2018-02-22 +%u
. Há também o código de formato +%A
para o nome da localidade do dia da semana, por exemplo, 'Quinta-feira'. Veja a man page para detalhes e muitas outras coisas interessantes do comando date
.
Você então tem uma escolha. Você pode iterar sobre o comando date
, imprimindo o resultado para cada dia do mês ou pode iterar nativamente em qualquer linguagem de script ou programação com a qual se sinta confortável. Por exemplo, você poderia usar o operador matemático de módulo %
para fazer loop em sete dias da semana n%7
e usar uma forma de instrução case
para sua operação de impressão ou definir uma matriz de sete elementos de nomes de dias da semana. Como exemplo, aqui está como definir e usar uma matriz em bash
:
dow=( Sun Mon Tues Wed Thu Fri Sat ) ; printf "%s\n" ${dow[4]}
O que resta é dizer ao seu loop quando parar, ie. quantos dias são no mês que você está processando. Isso é provavelmente mais fácil com uma matriz de doze elementos, cada um contendo o número de dias naquele mês. Você precisaria de um teste externo para verificar os 29 dias de fevereiro de um ano bissexto.
Quanto ao uso de awk
, você pode usá-lo, mas é improvável que seja a melhor ferramenta para o trabalho porque ele foi criado como editor de fluxo e você não está processando corrente. No entanto, se a sua tarefa requer awk
, então é com isso que você ficará preso.