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

时间:2015-02-10 14:33:28

标签: bash shell grep

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

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

#!/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

任何想法都会很棒!

1 个答案:

答案 0 :(得分:1)

我认为你想要实际的日期,例如。 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建议的日期声明。