디렉터리에 다음 형식으로 많은 파일 이름이 포함된 파일이 있습니다.
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
정보는 오전 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
또한 점을 이스케이프해야 합니다. 그렇지 않으면 모든 문자와 일치합니다.