Comment répertorier uniquement les jours de travail en utilisant la ligne de commande shell sur Linux

Comment répertorier uniquement les jours de travail en utilisant la ligne de commande shell sur Linux

L'article suivant expliquera une procédure simple sur la façon de répertorier les jours de travail (jours ouvrables) sur une ligne de commande Linux. Veuillez noter que la procédure ci-dessous ne prend pas en compte des jours fériés pour votre pays concerné car il ne montre que des jours de mots tout en excluant les week-ends.

Pour cela, nous utiliserons ncal commande. Commençons l'entraînement complet en affichant un calendrier pour un début de mois en cours:

$ ncal - h août 2016 MO 1 8 15 22 22 2 2 9 16 23 30 WE 3 10 17 24 31 e 4 11 18 25 Fr 5 12 19 26 SA 6 13 20 27 Su 7 14 21 28 

Ensuite, nous devons extraire uniquement les jours de travail du calendrier, tout en supprimant toutes les données inutiles telles que les lignes vides et les titres de mois:

$ ncal -h | grep -ve "^ s | ^ | ^ $" Mo 1 8 15 22 22 TU 2 9 16 23 30 WE 3 10 17 24 31 TH 4 11 18 25 Fr 5 12 19 26 

À ce stade, nous supprimons également tous les caractères alphabétiques:

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

Les entiers ci-dessus sont tous des jours de travail pour un mois en cours. Formatons et triez-les:

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

C'est tout. Maintenant, vous avez une liste complète et triée de toutes les jours de travail pour un mois en cours. Dans le cas où vous souhaitez calculer le nombre de jours de travail pour un mois en cours, tuez simplement la sortie à toilettes commande:

$ ncal -h | grep -ve "^ s | ^ | ^ $" | sed "s / [[: alpha:]] // g" | FMT -W 1 | Trier -n | WC -L 23 

C'était facile. Si vous souhaitez connaître le nombre de jours de travail pendant une année entière, par exemple.2017 Ajoutez votre année souhaitée comme ncal argument:

$ ncal -h 2017 | grep -ve "^ s | ^ | ^ $" | sed "s / [[: alpha:]] // g" | FMT -W 1 | Trier -n | WC -L 260 

De là, nous pouvons facilement utiliser Bash pour la boucle et calculer le nombre de vos journées de travail entre la gamme d'années. Quant à un exemple les 40 prochaines années entre 2017 et 2047:

 $ pour I en $ (Seq 2017 2047); Do ncal -h $ i | grep -ve "^ s | ^ | ^ $" | sed "s / [[: alpha:]] // g" | FMT -W 1 | Trier -n | wc -l; fait | Coller -sd + - | BC 8087 

Vous venez de voir le pouvoir de la coque GNU / Linux.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Vim Editor Basics in Linux
  • Commandes Linux de base
  • Commandes Linux: les 20 meilleures commandes les plus importantes que vous devez…
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Comment imprimer l'arbre du répertoire à l'aide de Linux
  • Commande man dans Linux avec des exemples
  • Système linux hung? Comment s'échapper vers la ligne de commande et…
  • Comment modifier les options d'expiration du mot de passe et du compte sur Linux…