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

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

~$ 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

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

https://stackoverflow.com/questions/4396775/

相关文章:

.net - NET 4.0 在 COM+ 中安装程序集加载额外的依赖项

indexing - 如何生成(书籍)索引?

.net - .NET 资源文件字符串是否被保留?

.net - ToString() 和调试器的字符串可视化工具

c# - 在 JSON.NET 中使用 LINQ 从字典创建 JProperty

asp.net - "Invalid use of response filter"压缩来自 IHt

c++ - 随机数生成的快速模数替换是什么?

eclipse - 卸载eclipse插件报错

wordpress - 将 Wordpress URL 路径转换为查询字符串

ruby-on-rails - 如何在命名空间内部的 View 中呈现命名空间外部的 Rails 部