Bash 中的提醒脚本帮助

Bash 中的提醒脚本帮助

我一直尝试制作一个简单的提醒脚本,它可以将运行日期与文件的日期进行比较。例如,我有一个包含以下内容的文件:

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

我想将运行日期(逐行读取文件)与文件日期进行比较,如果它们匹配,那么我想在屏幕上打印特定行。你能帮帮我吗?我正在努力……

答案1

一个简单的方法是使用grep

date +'^%b %d %Y' | grep -f- your_file

答案2

仅使用bash

#!/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,即前一个条件为真,则会打印。

相关内容