Я сложил попытку сделать простой сценарий напоминания, который может сравнить рабочую дату с датой, которую имеет файл. например, у меня есть файл, который содержит:
Apr 25 2015 cycling \n
Apr 26 2015 football \n
.\n
.\n
.\n
.\n
я хочу сравнить рабочую дату (читающий файл линию за линией) с датой файла и если они соответствуют затем, я хочу быть распечатанным определенная строка на моем экране. можно ли помочь мне? Я так стараюсь...
Простой способ состоял бы в том, чтобы использовать grep
:
date +'^%b %d %Y' | grep -f- your_file
Используя [только 111]:
#!/bin/bash
today="$(date +"%b %d %Y")"
while IFS= read -r line; do
[[ $line =~ ^$today ]] && echo "$line"
done </path/to/file.txt
today
переменная хранит отформатированную дату того дня
while IFS= read -r line
, считает каждую строку от file.txt
и сохранит его, поскольку переменная line
[[ $line =~ ^$today ]]
протестирует, если эти line
запустился с сегодняшней даты
&& echo "$line"
, распечатает line
, если предыдущая команда возвратит код выхода 0
, т.е. предыдущее условие верно.