Я пытаюсь отфильтровать историческое содержимое файла в моем git-репозитории.В некоторых файлах есть строка, содержащая строку «BEAM: A_BOOK», а в седьмом запятом значение этой строки - это значение, которое я хочу получить для дальнейшей обработки.Я думаю, в идеале, я бы хотел получить что-то вроде словаря с хэшем SHA-1 коммита и этим значением A_BOOK для прошлых версий этого файла.
Пример первых нескольких строкФайл.Обратите внимание, что значение, которое я надеюсь получить из этой версии файла, будет '56 .0 ':
# Date: 2018-12-21 01:49:16.888
PV,SELECTED,TIMESTAMP,STATUS,SEVERITY,VALUE_TYPE,VALUE,READBACK,READBACK_VALUE,DELTA,READ_ONLY
REA_EXP:LINE,0,1544047322.881066957,NO_ALARM,NONE,enum,"JENSA~[UDF;AT-TPC;GPL;JENSA]",,"---",,true
REA_BTS19:BEAM:OPTICSFILE,0,1541798820.065952460,NO_ALARM,NONE,string,"BTS19_test3.data",,"---",,true
REA_BTS19:BEAM:A_BOOK,0,1545322510.562031883,NO_ALARM,NONE,double,"56.0",,"---",,true
В конечном счете, я расширю это, чтобы получить значения пары и сделать некоторую математику для выполнения более сложной фильтрации.Дополнительные сведения: мы храним значения атомной массы и заряда для ионных пучков, которые мы предоставляем для экспериментов по ядерной физике, в текстовых файлах под контролем версий.Эти текстовые файлы действуют как наши «наборы сохранения», и в них содержится больше информации о массе и заряде, поскольку они также включают в себя машинные значения, которые мы восстановили бы, если бы хотели снова запустить этот луч.Моя цель состоит в том, чтобы отфильтровать эти файлы по соотношению Заряд: Масса лучей, с которыми мы с ними работали.
Пока что мне кажется, что это большая часть моей информации:
git grep 'BTS19:BEAM:A_BOOK' $(git rev-list --all) | grep RFQ-JENSA_Setpoint.snp
Который выплевывает нечто подобное:
16eca44985214b790eb6ca8241ad86728b4fd3ae:RFQ-JENSA_Setpoints.snp:REA_BTS19:BEAM:A_BOOK,0,1531323944.085330133,NO_ALARM,NONE,double,"2.0",,"---",,true
6e585c905444f25e18edfe1eeb32ced2de72ed7c:RFQ-JENSA_Setpoints.snp:REA_BTS19:BEAM:A_BOOK,0,1531323944.085330133,NO_ALARM,NONE,double,"2.0",,"---",,true
bc202d5f21f9829fa3701ca636657ee1b0a73e25:RFQ-JENSA_Setpoints.snp:REA_BTS19:BEAM:A_BOOK,0,1531323944.085330133,NO_ALARM,NONE,double,"2.0",,"---",,true
etc...
Однако я хотел бы увидеть что-то вроде:
<hash>:<Retrieved A_BOOK Value>
Или на основена выводе, который я только что показал, я надеюсь увидеть что-то вроде этого:
16eca44985214b790eb6ca8241ad86728b4fd3ae:2.0
6e585c905444f25e18edfe1eeb32ced2de72ed7c:2.0
bc202d5f21f9829fa3701ca636657ee1b0a73e25:2.0
etc...
И, в конце концов, добавьте немного математики, чтобы показать что-то более значимое:
<hash>:<Retrieved Q_BOOK Value>/<Retrieved A_BOOK Value>
Есть лилучший способ пойти об этом?Какой хороший способ получить эту информацию?
Спасибо!