Cómo enumerar solo los días de trabajo usando la línea de comandos de shell en Linux
- 3246
- 131
- Sta. Enrique Santiago
El siguiente artículo explicará un procedimiento simple sobre cómo enumerar los días de trabajo (días hábiles) en una línea de comandos de Linux. Tenga en cuenta que el siguiente procedimiento no tiene en cuenta un día festivo para su país relevante, ya que solo muestra días de palabras mientras excluye los fines de semana.
Para esto estaremos usando NCAL
dominio. Comencemos el entrenamiento completo mostrando un calendario para un inicio del mes actual:
$ 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 SA 6 13 20 27 Su 7 14 21 21 21 21
A continuación, necesitamos extraer solo días de trabajo del calendario, al tiempo que eliminamos todos los datos innecesarios, como líneas vacías y encabezados de mes:
$ 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 25 FR 5 12 19 26
En esta etapa también eliminamos todos los 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
Los enteros anteriores son todos los días de trabajo para un mes actual. Formaticemos y ordenemos:
$ ncal -h | grep -ve "^s |^|^$" | sed "s/[[: alfa:]] // g" | FMT -W 1 | ordenar -n 1 2 3 4 5 8 9 10 11 12 15 16 17 18 19 22 23 24 25 26 29 30 31
Eso es todo. Ahora, tiene una lista completa y ordenada de todos los días de trabajo para un mes actual. En caso de que desee calcular el número de días de trabajo para un mes actual, simplemente tuve la salida a WC
dominio:
$ ncal -h | grep -ve "^s |^|^$" | sed "s/[[: alfa:]] // g" | FMT -W 1 | sort -n | WC -L 23
Eso fue fácil. Si desea saber la cantidad de días de trabajo durante todo un año, por ejemplo,.2017 Agregue su año deseado como NCAL
argumento:
$ NCAL -H 2017 | grep -ve "^s |^|^$" | sed "s/[[: alfa:]] // g" | FMT -W 1 | sort -n | WC -L 260
Desde aquí podemos usar fácilmente bash para bucle y calcular el número de sus días de trabajo entre el rango de años. En cuanto a un ejemplo, los próximos 40 años entre 2017 y 2047:
$ para i en $ (SEQ 2017 2047); hacer ncal -h $ i | grep -ve "^s |^|^$" | sed "s/[[: alfa:]] // g" | FMT -W 1 | sort -n | wc -l; hecho | Paste -sd+ - | BC 8087
Acabas de presenciar el poder de GNU/Linux Shell.
Tutoriales de Linux relacionados:
- Cosas para instalar en Ubuntu 20.04
- Mint 20: Mejor que Ubuntu y Microsoft Windows?
- Vim Editor Basics en Linux
- Comandos básicos de Linux
- Comandos de Linux: los 20 comandos más importantes que necesitas ..
- Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
- Cómo imprimir el árbol de directorio usando Linux
- Comando de hombre en Linux con ejemplos
- Sistema colgado de Linux? Cómo escapar a la línea de comando y ..
- Cómo cambiar la contraseña y las opciones de vencimiento de la cuenta en Linux ..
- « Cómo ver y borrar el caché del servidor DNS en Linux en Linux
- Cómo instalar el cliente de Xenserver OpenxenManager en OpenSuse Linux »