Como listar apenas dias de trabalho usando a linha de comando Shell no Linux
- 662
- 113
- Leroy Lebsack
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…
- « Como visualizar e limpar o cache do servidor DNS Bind no Linux
- Como instalar o cliente do Xenserver OpenxenManager no OpenSuse Linux »