Ca întotdeauna, există mai multe moduri de a face acest lucru, în funcție de cerințele exacte.
Fiind una dintre cele mai simple moduri, puteți face:
AVARIABLE=$(sed -ne 's/.*DATE://p' document_determinationv1.txt)
Asta chiar nu-i pasă care linia la care este data. Acesta va funcționa atâta timp cât fișierul dvs. conține exact o linie care conține cuvântul cheie DATE urmat de două puncte și data pe care doriți să o extrageți. De asemenea, nu va verifica dacă DATE apare ca un cuvânt propriu, dacă partea de după DATA: este de fapt o dată sau dacă este urmată de vreun nedorit suplimentar. Dacă fișierul dvs. conține mai mult de o linie care conține DATA urmată de două puncte, atunci va pune toate părțile după fiecare DATĂ: în variabilă, separate prin linii noi, ceea ce poate sau nu produce ravagii în procesarea dvs. ulterioară. Deci, dacă fișierul dvs. conține, de exemplu:
[DOCUMENT_DETERMINATION]
#REVISION:v1;DATA:20210805;GREUTATE:123kg
[REAL_DETERMINATION]
#PRIME:13;CANDIDAT:BART SIMPSON
atunci comanda va pune bucuros
20210805;GREUTATE:123kg
BART SIMPSON
în variabilă, inclusiv linia nouă dintre literele g și B.
Dar atâta timp cât puteți garanta că fișierul are exact formatul pe care l-ați citat în întrebarea dvs., va funcționa bine.