从cat / less复制输出就像它显示的一样

时间:2011-05-02 17:38:03

标签: bash

我想要的是像手动复制粘贴一样复制输出。这主要意味着无法识别的字符将被保存为?或者它们是显示的,而不是它们的字符代码。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

如果你想要手动复制和粘贴的东西,那么使用一种剪贴板,而不是操作系统依赖,这不是一个重击问题。

例如,在MacOS X上,您可以:

echo $filename | pbcopy      #pbcopy - save the output from echo to clipboard
find / -name 'pbpaste`       #pbpaste - print the clipboard content

当然在Linux上也是这样的。 (xclip左右)

正如Erik告诉你的,如果你这样做

some_command > outfile ; cat outfile

相同
some_command  #plain output to terminal.

在文件“outfile”中,您将获得完全终端输出。 (期待一些罕见的情况)

并且不要与“less”或其他一些寻呼机混淆,他们真的应该将不可打印的角色改为别的。

最后 - 如果您遇到代码页问题,请尝试设置您的环境变量,如LANG,LC_ALL和LESSCHARSET(少人)等等。

bash config

set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
在某些情况下,

也应该有所帮助。 (男子狂欢)

尝试制定更精确的问题。 :)

答案 1 :(得分:1)

如果你有想要解决的问题的例子,我可能会更具体。

现在,我只能指着你

  • less -SR (显示解释ANSI转义)
  • ansifilter 将ANSI转义文本转换为纯文本(或HTML等)
  • iconv ,例如

cat myfile | iconv -f utf8 -t iso8859-1

当然,最后一个,替换你所涉及的任何角色集

更新

我刚刚制定了两个最有可能的设置,它们将按照我的想法进行描述:

cat position | iconv -t latin1//TRANSLIT
cat position | iconv -t ASCII//TRANSLIT

如果您有像这样的UNICODE文件position

 --> Applying move 131, ply 262: Q d3 - e2 + Checkmate .
... situation after:
⒏ ┊. . . . . . . . 
⒎ ┊. . ♟ . . . . . 
⒍ ┊. . ♙ . . . . . 
⒌ ┊. . ♙ . ♙ . . ♟ 
⒋ ┊. . . . ♘ ♜ . ♚ 
⒊ ┊. . . ▫ . . . . 
⒉ ┊. ♜ . . ♛ . . . 
⒈ ┊. . . . ♔ . ♗ . 
  └────────────────
   Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ 

会导致:

 --> Applying move 131, ply 262: Q d3 - e2 + Checkmate .
... situation after:
8. ?. . . . . . . . 
7. ?. . ? . . . . . 
6. ?. . ? . . . . . 
5. ?. . ? . ? . . ? 
4. ?. . . . ? ? . ? 
3. ?. . . ? . . . . 
2. ?. ? . . ? . . . 
1. ?. . . . ? . ? . 
  +----------------
   (A) (B) (C) (D) (E) (F) (G) (H)