Bash: salin / tempel berwarna

12

Sebagai semua orang, saya memiliki beberapa keluaran berwarna di bash saya. Saya ingin menyimpan sintaks berwarna ketika menyalin ekstrak ke editor HTML misalnya. Apakah ada cara untuk menangani ini?

Terima kasih.

AketO
sumber

Jawaban:

16

Jika Anda berbicara tentang output berwarna dari beberapa utilitas baris perintah seperti ls, grep, cmake, git diff, dll, silakan perhatikan, bahwa itu tidak memiliki hubungan dengan GNU Bash.

Bagaimanapun, ada beberapa alat untuk mengubah keluaran yang diwarnai dengan urutan pelarian ANSI ke HTML:

  • aha dari paket dengan nama yang sama
  • ansi2htmlfrom HTML :: FromANSI Perl module (tidak dikemas dalam repo Ubuntu, dapat diinstal dari CPAN)
  • ansi2html.sholeh pixelb (tidak dikemas, unduh dari git)

Penggunaan semuanya agak sederhana: mereka membaca urutan pelarian terminal dari stdindan menempatkan HTML stdout. Tetapi perhatikan: sebagian besar utils tidak mewarnai keluaran jika tidak pergi ke terminal. Anda harus memesannya untuk menghasilkan keluaran berwarna secara eksplisit. E. g .:

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

xsel -i -b di sini akan menyalin HTML ke clipboard.

Dmitry Alexandrov
sumber
Ini ( aha) bekerja dengan indah; Terima kasih banyak!
ShreevatsaR
2
aha - brilian! Ini hampir sempurna untukku. Untuk dapat menyalin teks yang diformat, saya beradaptasi dengan rute ke tmp, buka di browser, lalu cukup salin / tempel untuk situs lain: git -c color.ui=always diff | aha > /tmp/diff.html && firefox /tmp/diff.html ... dan ya saya tahu OP ingin html, tetapi banyak dari kita akan tersandung di sini ingin format umumnya.
bijak