Jak wymienić tylko dni pracy za pomocą wiersza poleceń Shell w Linux

Jak wymienić tylko dni pracy za pomocą wiersza poleceń Shell w Linux

Poniższy artykuł wyjaśni prostą procedurę na temat listy dni pracy (dni roboczych) w wierszu poleceń Linux. Należy pamiętać, że poniższa procedura nie uwzględnia wakacji publicznych dla twojego odpowiedniego kraju, ponieważ po prostu pokazuje tylko dni słów, wykluczając weekendy.

Do tego będziemy używać ncal Komenda. Rozpocznijmy pełny trening, wyświetlając kalendarz dla bieżącego miesiąca start:

$ ncal -h sierpnia 2016 MO 1 8 15 22 29 TU 2 9 16 23 30 WY 3 10 17 24 31 TH 4 11 18 25 FR 5 12 19 26 SA 6 13 20 27 SU 7 14 21 28 

Następnie musimy wyodrębnić tylko dni robocze z kalendarza, jednocześnie usuwając wszystkie niepotrzebne dane, takie jak puste linie i nagłówki miesiąca:

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

Na tym etapie usuwamy również wszystkie postacie alfabetyczne:

$ 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 

Powyższe liczby całkowite to dni robocze przez bieżący miesiąc. Sformatujmy i sortujmy je:

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

To wszystko. Teraz masz kompletną i posortowaną listę wszystkich dni pracy na bieżący miesiąc. W przypadku, gdy chcesz obliczyć liczbę dni pracy dla bieżącego miesiąca, po prostu ruszyć wyjście toaleta Komenda:

$ ncal -h | grep -ve "^s |^|^$" | sed "s/[: alpha:]] // g" | fmt -w 1 | sort -n | WC -L 23 

To było łatwe. Jeśli chcesz poznać liczbę dni pracy przez cały rok.2017 Dodaj żądany rok jako ncal argument:

$ ncal -h 2017 | grep -ve "^s |^|^$" | sed "s/[: alpha:]] // g" | fmt -w 1 | sort -n | WC -L 260 

Stąd możemy łatwo użyć bash do pętli i obliczyć liczbę dni pracy między zakresem lat. Jeśli chodzi o przykład przez następne 40 lat w latach 2017-2047:

 $ za I in $ (SEQ 2017 2047); do ncal -h $ i | grep -ve "^s |^|^$" | sed "s/[: alpha:]] // g" | fmt -w 1 | sort -n | WC -L; gotowe | wklej -sd+ - | BC 8087 

Właśnie byłeś świadkiem mocy powłoki GNU/Linux.

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • VIM Editor Basics w Linux
  • Podstawowe polecenia Linux
  • Polecenia Linux: Top 20 najważniejsze polecenia, które musisz…
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Jak wydrukować drzewo katalogu za pomocą Linux
  • Polecenie człowieka w Linux z przykładami
  • Hung Linux System? Jak uciec do wiersza poleceń i…
  • Jak zmienić opcje wygaśnięcia hasła i konta w Linux…