Kết xuất HTML từ một đường ống


15

Tôi muốn có thể tạo HTML sau đó chuyển nó sang một chương trình sẽ kết xuất nó, đại loại như thế này:

for i in 1 2 3
do
    for j in a b c
    do
        echo "<table border="1"><tr><td>$i</td><td>$j</td></tr></table>"
    done
done | /usr/bin/firefox

Thật không may, firefox không thể kết xuất dữ liệu được lấy từ stdin. Google-chrome cũng không thể. lynxcó thể, nhưng ai muốn sử dụng nó?

Tôi đã thử tạo một đường ống có tên, mở nó trong chrome và / hoặc firefox và sau đó đường ống dữ liệu đến đó - nhưng trình duyệt không cập nhật khi tôi gửi dữ liệu qua đường ống được đặt tên.

Có trình duyệt không dựa trên văn bản nào sẽ hiển thị html từ stdin không? Đầu ra không cần phải rối mắt, tôi chủ yếu quan tâm đến việc làm cho dữ liệu được phân tách dễ đọc hơn một chút, nhanh chóng.

Biên tập:

Tôi đã thử sử dụng thay thế quy trình của bash, ví dụ firefox <(sh /tmp/tablegen.sh), nó cũng không hoạt động. Trường hợp xấu nhất, tôi có thể xuất ra tệp tạm thời, kết xuất, sau đó xóa, nhưng tôi thích một giải pháp thanh lịch hơn một chút.


1
Câu hỏi tương tự ở đây: unix.stackexchange.com/questions/24931/...
WMZ

Liên kết tốt; Khá tốt xác nhận sự nghi ngờ của tôi rằng sử dụng tệp tạm thời là cách duy nhất để đi.
Barton Chittenden

Câu trả lời:


14

Từ một trong những câu trả lời cho câu hỏi này tôi đã tìm thấy bcat:

NAME

  bcat - browser cat

DESCRIPTION

  The bcat utility reads from standard input, or one or
  more files, and pipes output into a web browser. file
  may be '-', in which case standard input is concatenated
  at that position.

  When invoked as btee, all input is written immediately
  to standard output in addition to being piped into
  the browser.

Bây giờ tôi có thể chạy một kịch bản như thế này:

$ python foo.py | bcat

... và kết quả đầu ra HTML mở ra trong tab Firefox mới!

Trên Ubuntu và các bản phân phối Linux dựa trên Debian khác, bạn có thể cài đặt bcatbằng lệnh này:

$ sudo aptitude install ruby-bcat

Xin chào từ năm 2019, cài đặt ở trên không hoạt động nhưng sudo gem install bcatđã làm. :-)
roufamatic
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.