Cara menyenaraikan hanya hari kerja menggunakan baris arahan shell di linux

Cara menyenaraikan hanya hari kerja menggunakan baris arahan shell di linux

Artikel berikut akan menerangkan prosedur mudah mengenai cara menyenaraikan hari kerja (hari perniagaan) pada baris arahan Linux. Sila ambil perhatian bahawa prosedur di bawah tidak mengambil kira cuti umum untuk negara anda yang relevan kerana hanya menunjukkan hari perkataan sementara tidak termasuk hujung minggu.

Untuk ini kita akan menggunakan ncal perintah. Mari mulakan senaman lengkap dengan memaparkan kalendar untuk permulaan bulan semasa:

$ ncal -h Ogos 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 SA 6 13 20 27 Su 7 14 21 28 

Seterusnya, kita perlu mengekstrak hanya hari kerja dari kalendar, sementara juga mengeluarkan semua data yang tidak perlu seperti garis kosong dan tajuk bulan:

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

Pada peringkat ini, kami juga mengeluarkan semua watak abjad:

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

Integer di atas semua hari bekerja untuk bulan semasa. Mari format dan menyusunnya:

$ 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 

Itu sahaja. Sekarang, anda mempunyai senarai lengkap dan disusun semua hari kerja untuk bulan semasa. Sekiranya anda ingin mengira bilangan hari kerja untuk bulan semasa, hanya paip output ke WC Perintah:

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

Itu mudah. Sekiranya anda ingin mengetahui bilangan hari kerja sepanjang tahun misalnya.2017 Tambahkan tahun yang anda inginkan sebagai ncal Argumen:

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

Dari sini kita dapat dengan mudah menggunakan Bash untuk gelung dan mengira bilangan hari kerja anda antara lingkungan tahun. Bagi contoh 40 tahun akan datang antara 2017 - 2047:

 $ untuk i dalam $ (SEQ 2017 2047); Adakah ncal -h $ i | grep -ve "^s |^|^$" | sed "s/[: alpha:]] // g" | fmt -w 1 | sort -n | WC -L; Selesai | tampal -sd+ - | BC 8087 

Anda baru menyaksikan kekuatan shell GNU/Linux.

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Asas Editor Vim di Linux
  • Perintah Linux Asas
  • Perintah Linux: Top 20 Perintah Paling Penting yang Anda Perlu ..
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Cara mencetak pokok direktori menggunakan linux
  • Perintah Man di Linux dengan contoh
  • Sistem Hung Linux? Cara melarikan diri ke baris arahan dan ..
  • Cara menukar kata laluan dan pilihan luput akaun di Linux ..