это один из способов сделать это с помощью команды оболочки и даты.
#!/bin/bash
current=$(date +%R)
for file in *main*
do
d=$(date +%R -r "$file")
if [ "$d" = "$current" ];then
echo "GREEN: $file, current:$current, d: $d"
else
echo "RED: $file, current: $current, d: $d"
fi
done
обратите внимание, что вам придется подстраиваться под ваши собственные потребности, так как вы можете просто захотеть сравнивать только дату или только времяи т. д., что бы это ни было, проверьте справочную страницу даты для различных форматов даты.
Если вы хотите сделать это с помощью awk, вот чистое решение awk (+ GNU date)
awk 'BEGIN{
cmd="date +%R"
cmd|getline current
close(cmd)
for(i=1;i<=ARGC;i++){
file=ARGV[i]
if(file!=""){
cmd="date +%R -r \047"file"\047"
cmd |getline filetime
close(cmd)
if( filetime==current){
print "GREEN: "file
}else{
print "RED: "file
}
}
}
}
' *