Shell-Script
如何從文件中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
我該如何解決?
假設:
hour=09
只需使用它:
grep "\.$hour" file
在您的範例中使用單引號,變數不會被解釋為變數。因此模式搜尋
$hour
。點也必須被轉義,否則它將匹配任何字元。