Bash: sao chép / dán màu


12

Như mọi người, tôi có một vài đầu ra được tô màu trong bash của mình. Tôi muốn giữ cú pháp tô màu khi sao chép trích xuất vào trình soạn thảo HTML chẳng hạn. Có cách nào để xử lý việc này?

Cảm ơn.

Câu trả lời:


16

Nếu bạn đang nói về sản lượng colorized của một số tiện ích dòng lệnh như ls, grep, cmake, git diff, vv, xin vui lòng lưu ý, rằng nó không có bất kỳ mối quan hệ để GNU Bash.

Dù sao, có một số công cụ để chuyển đổi đầu ra được tô màu với các chuỗi thoát ANSI sang HTML:

  • aha từ gói cùng tên
  • ansi2htmltừ HTML :: mô-đun FromANSI Perl (không được đóng gói trong Ubuntu repo, có thể được cài đặt từ CPAN)
  • ansi2html.shbởi pixelb (không được đóng gói, tải xuống từ git)

Cách sử dụng của tất cả chúng khá đơn giản: họ đọc các chuỗi thoát thiết bị đầu cuối từ stdinvà đặt HTML vào stdout. Nhưng lưu ý: hầu hết các dụng cụ không tô màu đầu ra nếu nó không đến thiết bị đầu cuối. Bạn phải đặt hàng chúng để tạo ra màu sắc rõ ràng. Ví dụ.:

$ ls --color=always | aha | xsel -i -b

xsel -i -b ở đây sẽ sao chép HTML vào clipboard.


Điều này ( aha) làm việc tốt đẹp; Cảm ơn rât nhiều!
ShreevatsaR

2
aha - rực rỡ! Điều này gần như hoàn hảo đối với tôi. Để có thể sao chép văn bản được định dạng, tôi đã điều chỉnh định tuyến sang tmp, mở trong trình duyệt, sau đó chỉ cần sao chép / dán như đối với các trang web khác: git -c color.ui=always diff | aha > /tmp/diff.html && firefox /tmp/diff.html ... và vâng tôi biết OP muốn html, nhưng nhiều người trong chúng ta sẽ vấp ngã ở đây muốn các định dạng nói chung.
hiền nhân

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.