Próbuję zastąpić zawartość niektórych znaczników HTML na stronie HTML za pomocą sed w skrypcie bash. Z jakiegoś powodu nie otrzymuję prawidłowego wyniku, ponieważ nic nie zastępuje. Musi to być coś bardzo prostego/głupiego, z którego nie mogę wyjść, czy ktoś chce mi pomóc?Zastępowanie zawartości znacznika HTML za pomocą sed
HTML do wyszukiwania/zastąpić w:
Unlocked <span id="unlockedCount"></span>/<span id="totalCount"></span> achievements for <span id="totalPoints"></span> points.
sed polecenia używany:
cat index.html | sed -i -e "s/\<span id\=\"unlockedCount\"\>([0-9]\{0,\})\<\/span\>/${unlockedCount}/g" index.html
Punkt ten jest do analizowania stronę HTML i aktualizować dane według niektórych danych zewnętrznych. Dla pierwszego uruchomienia zawartość tagów będzie pusta, po czym zostaną wypełnione.
EDIT:
skończyło się stosując kombinację odpowiedzi, które doprowadziły do następującego kodu:
sed -i -e 's|<span id="unlockedCount">\([0-9]\{0,\}\)</span>|<span id="unlockedCount">'"${unlockedCount}"'</span>|g' index.html
Wiele dzięki @Sorpigal, @tripleee, @classic dla pomoc!
To bezużyteczne użycie kota – Sorpigal
, ale zmiana "kota" na f.e. "mniej" tak naprawdę nie rozwiąże mojego problemu, prawda? – Revell
Nie, ale "sed" ... "plik_wejściowy" będzie i jest jedynym właściwym sposobem, aby to zrobić, jeśli chcesz użyć 'sed -i'. – tripleee