Como listar apenas dias de trabalho usando a linha de comando Shell no Linux

Como listar apenas dias de trabalho usando a linha de comando Shell no Linux

O artigo a seguir explicará um procedimento simples sobre como listar dias de trabalho (dias úteis) em uma linha de comando Linux. Observe que o procedimento abaixo não leva em consideração um feriado para o seu país relevante, pois simplesmente mostra apenas dias de palavras ao excluir os fins de semana.

Para isso, estaremos usando ncal comando. Vamos iniciar o treino completo exibindo um calendário para o início do mês atual:

$ ncal -H agosto de 2016 Mo 1 8 15 22 29 Tu 2 9 16 23 30 WE 3 10 17 24 31 TH 4 11 18 25 FR 5 12 19 26 26 SA 6 13 20 27 27 SU 7 14 21 28 

Em seguida, precisamos extrair apenas dias de trabalho do calendário, enquanto também remove todos os dados desnecessários, como linhas vazias e títulos de mês:

$ ncal -h | grep -ve "^s |^|^$" mo 1 8 15 22 29 tu 2 9 16 23 30 nós 3 10 17 24 31 th 4 11 18 25 FR 5 12 19 26 26 

Nesta fase, também removemos todos os caracteres alfabéticos:

$ ncal -h | grep -ve "^s |^|^$" | sed "s/[[: alfa:]] // g" 1 8 15 22 29 2 9 16 23 30 3 10 17 24 31 4 11 18 25 5 12 19 26 26 

Os números inteiros acima são dias de trabalho para um mês atual. Vamos formatar e classificá -los:

$ ncal -h | grep -ve "^s |^|^$" | sed "s/[[: alfa:]] // g" | FMT -W 1 | classificar -n 1 2 3 4 5 8 9 10 11 12 15 16 17 18 19 22 23 24 25 26 29 30 31 

Isso é tudo. Agora, você tem uma lista completa e classificada de todos os dias de trabalho para um mês atual. Caso você queira calcular o número de dias de trabalho para um mês atual, basta transmitir a saída para Banheiro comando:

$ ncal -h | grep -ve "^s |^|^$" | sed "s/[[: alfa:]] // g" | FMT -W 1 | classificar -n | WC -l 23 

Essa foi fácil. Se você deseja saber o número de dias de trabalho para um ano inteiro, por exemplo,.2017 Adicione o ano desejado como ncal argumento:

$ ncal -h 2017 | grep -ve "^s |^|^$" | sed "s/[[: alfa:]] // g" | FMT -W 1 | classificar -n | WC -l 260 

A partir daqui, podemos usar facilmente o Bash para loop e calcular o número de seus dias de trabalho entre a faixa de anos. Quanto a um exemplo nos próximos 40 anos entre 2017 - 2047:

 $ para i em $ (seq 2017 2047); do ncal -h $ i | grep -ve "^s |^|^$" | sed "s/[[: alfa:]] // g" | FMT -W 1 | classificar -n | wc -l; feito | pasta -sd+ - | BC 8087 

Você acabou de testemunhar o poder da concha GNU/Linux.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • VIM Editor básico no Linux
  • Comandos básicos do Linux
  • Comandos Linux: os 20 comandos mais importantes que você precisa para…
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Como imprimir a árvore do diretório usando o Linux
  • Comando de homem no Linux com exemplos
  • Sistema Linux Hung? Como escapar para a linha de comando e…
  • Como alterar as opções de expiração de senha e conta no Linux…