Chiều Thứ Sáu và bộ não của tôi đã bị đóng băng!Nhận văn bản bên trong thẻ xml bằng grep
grep -E -m 1 -o "<title>(.*)</title>" myfile.rss
lợi nhuận
<title>Some title</title>
Làm thế nào để chỉ nhận được Some title
?
Chiều Thứ Sáu và bộ não của tôi đã bị đóng băng!Nhận văn bản bên trong thẻ xml bằng grep
grep -E -m 1 -o "<title>(.*)</title>" myfile.rss
lợi nhuận
<title>Some title</title>
Làm thế nào để chỉ nhận được Some title
?
ống nó hơn nữa thông qua, ví dụ
sed -e 's,.*<title>\([^<]*\)</title>.*,\1,g'
Cảm ơn! Brain rã đông ;-) – tdc
+1, nhưng lưu ý rằng việc sử dụng 'sed' để phân tích cú pháp XML (hoặc HTML) thường không phải là một ý tưởng hay. Nó chỉ nên được thực hiện khi đầu vào được biết đến và không thay đổi bất ngờ. Đối với bất cứ điều gì slurped tự động từ internet một phân tích cú pháp thích hợp nên được sử dụng. – Sorpigal
@Sorpigal, tôi đồng ý hoàn toàn, hãy xem nhận xét cho chính câu hỏi đó để biết chi tiết. –
Bash không có chức năng xây dựng-in để phân tích cú pháp XML. Bạn có thể xem xét sử dụng PHP, perl để phân tích cú pháp XML theo cách thích hợp. Sau đó nhận được giá trị nút sẽ dễ dàng – ajreal
Không, đó là hoàn thành quá mức cần thiết cho nhiệm vụ! – tdc
Đối với những gì tôi hiểu, chúng tôi chỉ muốn trích xuất nội dung tiêu đề từ xml bố cục đã biết, không phân tích cú pháp xml. Để phân tích cú pháp xml 'xmlstarlet' có thể là tiện ích hữu ích. –