我想用ex(vim在ex/silent模式下)做一些处理。但是如果一行是空的,会有一个奇怪的行为。一个额外的空格字符被添加到该行-即使在二进制模式下。有可能消除这个吗?
结账:
$ printf "a\n1st\n\n3rd\n.\n%%p\n" | ex -b | hexdump -C
00000000 31 73 74 0a 20 0a 33 72 64 0a
请注意printf中的Ex行:a
用于附加文本,三行,.
用于关闭附加模式,%p
用于打印所有内容)
a
1st
3rd
.
%p
预期结果为
00000000 31 73 74 0a 0a 33 72 64 0a
1条答案
按热度按时间camsedfj1#
printf
似乎不是额外空间来源:ex
似乎也没有涉及到,至少它的使用方式更加“正常”:但您并不是以那种方式使用
ex
,而是以某种方式将屏幕转储到stdout
,这 * 可能 * 解释了该空间的外观。如果不知道你实际上想要做什么,很难提供一个更好的解决方案。无论如何,作为一个全屏的面向文档的程序,
ex
通常不适合在管道中使用,所以你可能需要寻找一种不同的方法。