Acumular o nome do arquivo em um arquivo de log usando o shell script

2

Eu tenho arquivos com seus nomes como

ABC_-_123321.20140505_-_161500.CSV
ABC_-_654145.20140506_-_135020.CSV % String_-_SerialID. Date _-_ Time .CSV

StartDate, StartTime, EndDate e EndTime são dados como entrada.

Como posso obter todos os nomes de arquivos (ou caminhos relativos) com Data e Tempo entre a Data especificada e intervalos de Tempo e gravá-los em um arquivo de log usando um script de shell?

Data e Hora não são a data / data / hora do último acesso ou modificação e não há espaços em branco nos nomes dos arquivos.

E eu posso usar a entrada Data e Tempo individualmente sem nenhum separador entre campos, por exemplo, 20140706 e 165030
ou eu posso receber entrada como 20140706165030

    
por FredOscatore 04.07.2014 / 08:01

1 resposta

0

Algoritmo para fazer este trabalho:

para cada arquivo, obtenha a data & faça a diferença o mesmo com determinada data. Por favor, encontrar o link abaixo para a diferença de data.

link

Para solaris (unix sem data GNU) use este   link

Se você quiser tempo sábio, dentro da data de loop use loop por tempo. Para obter a diferença no tempo, você pode usar o seguinte código

      time1=14:30
      time2=$( date +%H:%M ) # 16:00
      diff=$(  echo "$time2 - $time1"  | sed 's%:%+(1/60)*%g' | bc -l )
      echo $diff hours
      # outputs 1.5 hours

Aqui sed substitui um : por uma fórmula para converter para 1/60. Em seguida, o cálculo do tempo feito por bc (clique em link para mais informações).

Nota: Se a DIFERENÇA for + ve, log / content pode ser colocado como arquivo designado, caso contrário,

    
por 04.07.2014 / 10:58