Jak wszyscy, mam kilka kolorowych wyników w moim bashu. Chcę zachować kolorową składnię na przykład podczas kopiowania wyciągu do edytora HTML. Czy istnieje sposób, aby sobie z tym poradzić?
Dzięki.
Jeśli mówimy o barwionym wyjściu niektórych narzędzi wiersza poleceń, takich jak ls
, grep
, cmake
, git diff
, itp, proszę zauważyć, że nie ma żadnych relacji do GNU Bash.
W każdym razie istnieje kilka narzędzi do konwersji danych wyjściowych pokolorowanych sekwencjami ucieczki ANSI na HTML:
aha
z paczki o tej samej nazwieansi2html
z modułu HTML :: FromANSI Perl (nie jest pakowany w repozytorium Ubuntu, może być zainstalowany z CPAN)ansi2html.sh
autor: pixelb (nie spakowany, pobierz z git)Korzystanie z nich wszystkich jest dość proste: odczytują sekwencje specjalne terminali stdin
i umieszczają w nich HTML stdout
. Ale uwaga: większość programów narzędziowych nie koloryzuje danych wyjściowych, jeśli nie zostaną one zakończone. Musisz je zamówić, aby jawnie tworzyły kolorowe wydruki. Np .:
$ ls --color=always | aha | xsel -i -b
xsel -i -b
tutaj skopiuje HTML do schowka.
aha
) działało pięknie; Dziękuję Ci bardzo!git -c color.ui=always diff | aha > /tmp/diff.html && firefox /tmp/diff.html
... i tak, wiem, że OP chciał html, ale wielu z nas potknie się tutaj formatowanie ogólnie.Musisz do tego użyć bibliotek javascript, nie możesz bezpośrednio kopiować / wklejać i zachowywać kolorów takimi, jakie są. Niektóre z popularnych bibliotek do tego to:
Źródło: Podobne pytanie dotyczące SO
źródło