bash - 使用转义序列呈现文本(如终端)

标签 bash text terminal render vi

您好,我正在寻找一些库或工具来在文本文件中呈现带有转义序列字符的文本。我不知道怎么调用它,但这里有一个例子:

~$ echo -e "abc\vdef"
abc
   def
~$
~$ echo -e "abc\vdef" > /tmp/xxxxx
~$ vi /tmp/xxxxx

我在屏幕上看到了 abc^Kdef。

所以我正在寻找可以为我做这件事的工具:

~$ sometool /tmp/xxxxx > /tmp/yyyyy
~$ vi /tmp/yyyyy
I can get 

abc
   def

在 vi 窗口中。

\v只是一个例子,我需要转换\v、\b、\f等

致哈里斯基: 但我想要的是:

$~/:sometool /tmp/xxxxx > /tmp/yyyyy

在 python 中

>>> f=open('/tmp/yyyyyy').readlines()
>>> f[0]
>>> ['abc\n   def']

在\n 和 def 之间有三个空格

最佳答案

shell 中的字符\v 在每个编辑器/工具中都有不同的表示。如果你对文件做一个猫,你仍然会得到你需要的东西

$ cat /tmp/xxxxx
abc
   def
$

如果您在 python 中打开相同的文件,您将看到字符为\x0b。但是当你打印它时,它很好。

>>> f=open('/tmp/se').readlines()
>>> f[0]
['abc\x0bdef\n']
>>> print f[0]
abc
   def

基本上这是一个表示的问题。如果您的要求是使用程序或工具读取文件,则表示应该不是问题。

关于bash - 使用转义序列呈现文本(如终端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4396775/

相关文章:

javascript:检查标签是否彼此相邻

ruby-on-rails - RubyMine 终端使用了错误的 RVM,并且在 Rails 控制台中没有历史记录

c - 杀死子进程后终端中的不可见文本

android - FAILURE 构建失败,出现异常 cordova。当构建命令运行时

bash - 如何从 ls 输出中检索文件名

linux - bash/Makefile 中的双美元符号是什么意思?

text - LaTeX - 更改文档的字体大小,但在序言中,而不是文档类?

javascript - 从外部链接每 5 秒更改一次文本

bash - 使用 sed 将文件名中的数值填充为三位数

bash - Makefile 中的脚本通常用于查找工具链的路径