grep 以今天的日期命名的日志文件中的字符串

grep string from log file named with today's date

所以我有一个脚本,每小时从一个来源获取 IP 列表和其他信息,并输出一个名为 %d%m%Y-%H.csv

的文件

我想 grep 这些 IP 并将它们输出到另一个名为 IP_%d%m%Y-%H 的文件中。 但是,我似乎无法正确获取代码,它基本上 returns 是一个空文件,我认为它无法读取原始文件。

#!/bin/bash

grep -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" %d%m%Y-%H.csv>>IP_%d%m%Y-%H.txt;
done

任何想法都会很棒!

我想您想要实际日期,例如。 10022015-16.csv

那么您的脚本必须是:

#!/bin/bash

NOW=$(date +%d%m%Y-%H)

grep -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" $NOW.csv>>IP_$NOW.txt
exit $?

[edit] 按照 Jotne 的建议修改了退出语句和日期语句。