Bash: renkli kopyala / yapıştır


12

Herkes gibi, bash'ımda birkaç renklendirilmiş çıktı var. Örneğin HTML düzenleyicisine ayıklama yaparken renklendirilmiş sözdizimini korumak istiyorum. Bununla başa çıkmanın bir yolu var mı?

Teşekkürler.

Yanıtlar:


17

Eğer gibi bazı komut satırı yardımcı programları renklendirilmiş çıktı bahsedecek olursak ls, grep, cmake, git diff, vb not, GNU Bash için herhangi ilişkileri bulunmayan lütfen söyledi.

Her neyse, ANSI kaçış dizileriyle renklendirilmiş çıktıları HTML'ye dönüştürmek için birkaç araç var:

  • aha aynı adlı paketten
  • ansi2htmldan HTML :: FromANSI Perl modülü (Ubuntu repo ambalajlı değil, CPAN kurulabilir)
  • ansi2html.shpixelb tarafından (paketlenmemiş, git'ten indir)

Hepsinin kullanımı oldukça basittir: terminal kaçış dizilerini okur stdinve HTML'yi koyarlar stdout. Ancak not: terminale gitmiyorsa, çoğu araç çıktıyı renklendirmez. Bunları açıkça renklendirilmiş çıktılar üretmeleri için sipariş etmelisiniz. Örneğin.:

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

xsel -i -b burada HTML panoya kopyalanır.


Bu ( aha) güzel çalıştı; çok teşekkür ederim!
ShreevatsaR

2
aha - mükemmel! Bu benim için neredeyse mükemmel. Biçimlendirilmiş metni kopyalayabilmek için, tmp'ye yönlendirmeye adapte oldum, tarayıcıda açtım, sonra sadece diğer siteler için olduğu gibi kopyala / yapıştır: git -c color.ui=always diff | aha > /tmp/diff.html && firefox /tmp/diff.html ... ve evet OP'nin html'yi istediğini biliyorum, ancak çoğumuz burada isteyen genellikle biçimlendirme.
adaçayı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.