如何从文件中 grep 以下行?

如何从文件中 grep 以下行?

我有一个文件,其中包含目录中许多文件的名称,格式如下:

A20150824.0950-0955_jambala_CcnActiveSessionCounterJob
A20150824.0945-0950_jambala_CcnActiveSessionCounterJob
A20150824.0940-0945_jambala_CcnActiveSessionCounterJob
A20150824.0935-0940_jambala_CcnActiveSessionCounterJob
A20150824.0955-1000_jambala_CcnActiveSessionCounterJob
A20150824.0000-0005_jambala_CcnActiveSessionCounterJob
A20150824.0100-0105_jambala_CcnActiveSessionCounterJob
A20150824.0105-0110_jambala_CcnActiveSessionCounterJob
A20150824.0110-0115_jambala_CcnActiveSessionCounterJob
A20150824.0115-0120_jambala_CcnActiveSessionCounterJob
A20150824.0120-0125_jambala_CcnActiveSessionCounterJob
A20150824.1400-1405_jambala_CcnActiveSessionCounterJob

上述文件的命名约定是A<YYYYMMDD>.HHMM-HHMM_<city>_CcnActiveSessionCounterJob.

这些文件在每天的所有时间里每 5 分钟创建一次,这样,每小时我会得到 12 个文件,每天会得到 12X24 个文件。我生成了一个文件,其中包含所有 12x24 文件的名称,并且while在 bash 脚本中有一个循环,我试图每小时进行一些处理。我想找到一种方法来创建另一个文件,其中包含每小时 12 个文件。为此,我有一个 while 外循环,它给出小时值,而内循环则给出分钟值。这些文件的名称中包含时间信息。前任:

A20150824.0950-0955_jambala_CcnActiveSessionCounterJob

给出 09-50 AM 到 09-55 AM 的信息。

如何grep从包含所有 12X24 文件名的文件中提取文件名并将它们放入单独的文件中,以便新文件包含以下文件名:

A20150824.0900-0905_jambala_CcnActiveSessionCounterJob
A20150824.0905-0910_jambala_CcnActiveSessionCounterJob
A20150824.0910-0915_jambala_CcnActiveSessionCounterJob
A20150824.0915-0920_jambala_CcnActiveSessionCounterJob
.
.
.
A20150824.0955-1000_jambala_CcnActiveSessionCounterJob

我已经有一个变量hour,其中包含当前正在处理的小时信息,我尝试使用以下内容,但它不起作用:

grep -E '.$hour' FILE_with_ALL_FILENAMES

上述文件名中的.$hour目标位置。.09我该如何解决?

答案1

假设:

hour=09

只需使用它:

grep "\.$hour" file

在示例中使用单引号时,变量不会被解释为变量。因此该模式搜索$hour.另外,点必须被转义,否则它会匹配任何字符。

相关内容