Ajuda com script de lembrete no Bash

1

Eu tenho empilhado tentando fazer um simples script de lembrete que pode comparar a data de execução com a data que um arquivo tem. por exemplo eu tenho um arquivo que contém:

Apr 25 2015 cycling \n
Apr 26 2015 football \n
.\n
.\n
.\n
.\n

Eu quero comparar a data de execução (lendo o arquivo linha por linha) com a data do arquivo e se eles correspondem, então eu quero ser impresso a linha específica na minha tela. Você pode me ajudar por favor? Eu estou tentando tanto ...

    
por teobass 25.04.2015 / 20:31

2 respostas

5

Uma maneira fácil seria usar grep :

date +'^%b %d %Y' | grep -f- your_file
    
por Florian Diesch 25.04.2015 / 20:42
3

Usando apenas bash :

#!/bin/bash
today="$(date +"%b %d %Y")"
while IFS= read -r line; do
   [[ $line =~ ^$today ]] && echo "$line"
done </path/to/file.txt
  • A variável today armazena a data formatada desse dia

  • while IFS= read -r line lerá cada linha de file.txt e a salvará como variável line

  • [[ $line =~ ^$today ]] testará se o line começou com a data de hoje

  • && echo "$line" imprimirá o line se o comando anterior retornar um código de saída 0 , ou seja, a condição anterior é verdadeira.

por heemayl 25.04.2015 / 20:49