Tôi đang cố gắng thay thế nội dung của một số thẻ HTML trong trang HTML bằng cách sử dụng sed trong tập lệnh bash. Vì một số lý do tôi không nhận được kết quả phù hợp vì nó không thay thế bất cứ điều gì. Nó phải là một cái gì đó rất đơn giản/ngu ngốc im nhìn, bất cứ ai chăm sóc để giúp tôi ra?Thay thế nội dung thẻ HTML bằng sed
HTML để tìm kiếm/thay thế trong:
Unlocked <span id="unlockedCount"></span>/<span id="totalCount"></span> achievements for <span id="totalPoints"></span> points.
lệnh sed sử dụng:
cat index.html | sed -i -e "s/\<span id\=\"unlockedCount\"\>([0-9]\{0,\})\<\/span\>/${unlockedCount}/g" index.html
Điểm của việc này là để phân tích các trang HTML và cập nhật số liệu theo một số dữ liệu bên ngoài. Lần đầu tiên, nội dung của các thẻ sẽ trống, sau đó chúng sẽ được lấp đầy.
EDIT:
tôi đã kết thúc bằng một sự kết hợp các câu trả lời mà dẫn đến đoạn mã sau:
sed -i -e 's|<span id="unlockedCount">\([0-9]\{0,\}\)</span>|<span id="unlockedCount">'"${unlockedCount}"'</span>|g' index.html
Nhiều nhờ @Sorpigal, @tripleee, @classic cho sự giúp đỡ!
Đây là việc sử dụng mèo vô dụng – Sorpigal
nhưng thay đổi "mèo" thành f.e. "ít" sẽ không thực sự giải quyết vấn đề của tôi bây giờ sẽ không? – Revell
Không, nhưng 'sed '...' inputfile' sẽ, và là cách chính xác để thực hiện nếu bạn muốn sử dụng' sed -i'. – tripleee