Uma maneira fácil seria usar grep
:
date +'^%b %d %Y' | grep -f- your_file
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 ...
Uma maneira fácil seria usar grep
:
date +'^%b %d %Y' | grep -f- your_file
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.