Nadal mylę się z tym, co robię źleautomatyzuję git push pull i piszę posta, niżej wymieniony dziennik zatwierdzenia sklepu liniowego od końca dewelopera w pliku, ale co robi źle, to tylko sklep FE=
.Czy chcę go przechowywać FE="anything that developer write here"
.
var_custom_FE_log="$( git log -1 --no-merges $branch | grep -o -P "FE=.*? " )
Odpowiedzi:
2 dla odpowiedzi № 1Jeśli chcesz dopasować FE=value
powinieneś usunąć -o
flag w grep. Porównać:
$grep -o -P "FE=.*?" <<< "FE=some text here"
FE=
$grep -P "FE=.*?" <<< "FE=some text here"
FE=some text here
Jeśli jest tylko jedna deklaracja na linię, nie ma potrzeby używania leniwego kwantyfikatora .*?
. Możesz użyć .*
i upuść -P
flaga:
$grep "FE=.*" <<< "FE=some text here"
FE=some text here
1 dla odpowiedzi nr 2
Nie widzę nic złego w twoim kodzie. Grep zwróci ciąg znaków FE=
, a następnie (opcjonalnie) niepuste znaki, a następnie spacja. Na przykład, jeśli po spacji pojawi się spacja FE=
, tak jak w
xxxx FE= anything that developer write here
dostaniesz tylko FE = (z końcową spacją), podczas gdy linia
xxxx FE=anything that developer write here
dałbym ci FE = cokolwiek (ponownie z końcową spacją).
BTW, podczas gdy flaga -P nie jest błędna, -E byłoby wystarczające w twoim przypadku.