Script com data de entrada, dia de saída

0

Eu quero escrever um script bash que leia uma entrada do teclado (data dd: mm: aa), armazene-a em uma variável e repita o dia correspondente, ou seja,

Entrada: 03/08/2015

Resultado: quarta-feira

Estou tendo alguns problemas com a formatação, qualquer ajuda é muito apreciada !!

    
por bopi 17.09.2015 / 15:10

2 respostas

2

date aceita entrada com seu sinal -d e imprime. No entanto, a entrada formatada como a sua é tratada como MM / DD / AAAA. Mas isso não deve ser muito difícil.

Primeiro, vamos inserir a variável:

read INPUT

Agora, precisamos alterar a entrada de DD / MM / AAAA para MM / DD / AAAA. Você pode fazer isso com sed e awk (você também pode fazer isso com awk :

INPUT='echo $INPUT | awk -F '/' '{t=$1;$1=$2;$2=t;gsub(" ", "/");print;}''

Agora que o INPUT está no formato adequado, alimente-o para date e deixe-o imprimir apenas o dia:

date -d $INPUT +%A

Coloque tudo junto:

#!/bin/bash
read INPUT
INPUT='echo $INPUT | awk -F '/' '{t=$1;$1=$2;$2=t;gsub(" ", "/");print;}''
date -d $INPUT +%A
    
por 17.09.2015 / 16:39
2

O Perl tem alguns módulos datetime integrados:

$ perl -MTime::Piece -E '
     print "Input date (dd/mm/YYYY): ";
     chomp( $date = <> );
     $datetime = Time::Piece->strptime($date, "%d/%m/%Y");
     say $datetime->strftime("%e %B is a %A");
'
Input date (dd/mm/YYYY): 3/8/2015
 3 August is a Monday
    
por 17.09.2015 / 17:01

Tags