我一直尝试制作一个简单的提醒脚本,它可以将运行日期与文件的日期进行比较。例如,我有一个包含以下内容的文件:
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
,即前一个条件为真,则会打印。