ディレクトリには、次の形式で多数のファイル名を含むファイルがあります。
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
。
ファイルは1日中いつでも5分ごとに作成されるため、1時間あたり12ファイル、1日12×24ファイルが得られます。私はすべての12x24ファイルの名前を含むファイルを作成しましたが、時間ごとwhile
にいくつかの処理を実行しようとしているbashスクリプトにループがあります。 1時間あたり12個のファイルを含む別のファイルを作成する方法を見つけたいです。これを行うには、時間値を提供する外部whileループがあり、内部ループは分値を提供します。これらのファイルの名前には時間情報が含まれています。前任者:
A20150824.0950-0955_jambala_CcnActiveSessionCounterJob
情報は午前9時から50時まで午前9時から55時まで提供されます。
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
ポイントをエスケープする必要があります。それ以外の場合はすべての文字と一致します。