gnuplot не поддерживает регулярные выражения, но вы можете написать функцию, которая извлекает время в секундах из вашего имени файла.Если ваше имя файла и временная метка имеют строгий формат, например, "...[d=2h7m31s]..."
, вы можете использовать следующий код.В противном случае вы должны адаптировать его соответствующим образом.
- Сначала извлеките часть
2h7m31s
с помощью strstrt()
- , проанализируйте ее с помощью
strptime()
- и сделайте целое числоиз него с
int()
Код:
### parse special time string
NAME = "Filename[d=2h7m31s].csv"
TimeExtract(s) = int(strptime("%Hh%Mm%Ss",s[strstrt(s,'[d=')+3:strstrt(s,']')-1]))
print TimeExtract(NAME)
### end of code
Результат:
7651
Добавление:
следующий код также охватывает другие возможности, если последовательность ...[d=..h..m..s]...
,
### parse special time string
NAME = "Filename[d=2h7m31s]somethingelse.csv"
TimeString(s) = s[strstrt(s,'[d=')+3:strstrt(s,']')-1]
TimeExtractFormat(s) = \
"%Hh"[1:sgn(strstrt(TimeString(s),'h'))*3].\
"%Mm"[1:sgn(strstrt(TimeString(s),'m'))*3].\
"%Ss"[1:sgn(strstrt(TimeString(s),'s'))*3]
TimeExtract(s) = int(strptime(TimeExtractFormat(s),TimeString(s)))
print TimeExtract("Filename[d=31s]somethingelse.csv")
print TimeExtract("Filename[d=7m]somethingelse.csv")
print TimeExtract("Filename[d=2h]somethingelse.csv")
print TimeExtract("Filename[d=7m31s]somethingelse.csv")
print TimeExtract("Filename[d=2h31s]somethingelse.csv")
print TimeExtract("Filename[d=2h7m31s]somethingelse.csv")
### end of code
Результат:
31
420
7200
451
7231
7651