Câu hỏi Có một công cụ để loại bỏ tất cả các siêu liên kết từ một tập tin html?


Có cách nào để làm điều này trong Ubuntu? Tôi đã đọc nó có thể trong php, nhưng tôi không quen thuộc với php cả.


4
2018-05-29 14:33


gốc




Các câu trả lời:


Bạn đã có thể sử dụng sed cho điều đó, nhưng nó sẽ chỉ hoạt động đối với các liên kết nằm trong một dòng trong mã html.

Cập nhật:

Damn tham lam regex! ;) Điều này một nên làm việc ngay bây giờ!

sed -i 's|<a[^>]\+>|<a>|g' <the-html-file>


3
2018-05-29 14:49



Nó hành xử kỳ quặc! Xóa tất cả các câu, sau một liên kết neo trong một đoạn cho đến khi liên kết neo tiếp theo, mà không bị xóa. Để lại nhiều liên kết như vậy. :( - 22lk94k943 only
Bạn có thể đưa ra một tệp mẫu không? - ortang
Chắc chắn tại sao không. skydrive.live.com/redir?resid=98CCEEFEF56EFF2A!118 - 22lk94k943 only
Tôi đã cập nhật câu trả lời của mình - ortang
Chỉ trích! Nó hoạt động như một con dao trên pho mát. Cảm ơn rất nhiều. Nó sẽ mang tính giáo dục cao nếu bạn có thể thêm mô tả về "Greedy regex" vào câu trả lời. - 22lk94k943 only


Phụ thuộc vào những gì bạn đang cố gắng làm:

Nếu bạn có một đống tệp trên máy của mình và bạn muốn xóa các liên kết, hãy sử dụng thứ gì đó như tập lệnh wee perl để xóa <a ...> ... </a> thẻ. Bạn có thể xóa các thẻ khác (hoặc thậm chí tất cả các thẻ) theo cách tương tự. Với các tùy chọn đối sánh mẫu phù hợp, phương pháp này có thể xử lý các thẻ được phân tách trên nhiều dòng. (Nó rất tao nhã, nhưng chi tiết sẽ không phù hợp với lề của bài đăng này).

Nếu bạn đang cố gắng duyệt các tệp trên một số máy chủ web, bằng cách sử dụng firefox (hoặc trình duyệt khác), một số loại tập lệnh viết tắt tự động sửa đổi các trang một cách nhanh chóng, trước khi hiển thị chúng, có thể là những gì bạn muốn.


1
2018-05-29 14:50