2

将 Linux 命令的输出流式传输到 JTextArea。如何处理 ASCII 序列。这些序列通常用于在 shell 环境中突出显示文本。

JTEXTAREA 看起来像这样:

ls -altr
drwx------  2 user    80 2009-11-25 07:23 [01;34mDocuments[00m
drwxr-xr-x  2 user    48 2009-11-25 07:23 [01;34mbin[00m
-rw-r--r--  1 user  1177 2009-11-25 07:23 [00m.bashrc[00m
drwx------  8 user   608 2009-11-25 07:23 [01;34m.[00m
drwxr-xr-x 88 user  2096 2011-03-09 08:47 [01;34m..[00m
-rw-------  1 user   472 2011-03-12 11:38 [00m.bash_history[00m

我应该在哪里剥离或处理奇怪的 ASCII 序列“[01;34m”。我无法过滤字符,因为它是字符序列。

想法?

4

3 回答 3

1

I can't filters char's because it's a sequences of chars.

You can use a Document Filter. A String of characters to be added to the Document is passed to the filter. You can remove any character from the string before updating the document.

于 2011-03-12T16:12:42.567 回答
0

这似乎是颜色转义序列。
必须有一些选项来禁用ls列表中的颜色,例如--color=never.

也许--hide-control-chars是为了避免非图形字符。

于 2011-05-31T18:48:30.863 回答
0

ANSI 转义序列以开头<esc>[和结尾m- 您可以过滤它们

于 2011-03-12T11:49:31.590 回答