Tig*_*ger 2 zsh cat text newlines
这让我很困惑,当我执行 cat cmd 时,我总是在文件末尾看到类似 % 的内容,但是如果我在编辑器或 sublime 上打开文件,它就消失了。那么如何确保我的文件格式正确,例如,运行 cmdcat -e test.txt
abc$
sdf$
adg$
adsf$
afg%
Run Code Online (Sandbox Code Playgroud)
这是zsh 显示您的文件以未终止的 line 结尾的方式。您会看到与fishshell类似的东西,它(令人困惑地)?在可用或^J其他情况下使用字符代替。
对于大多数其他 shell(或者如果关闭此功能,则使用 zsh),您会afg在同一行之后立即看到提示,而对于某些 shell,会出现显示故障,因为 shell 期望提示位于左边距.
通常,在类 Unix 系统上,换行符是行终止符:每一行都必须以换行符结尾。文本文件由一系列行组成,因此非空文本文件总是以换行符结尾。(这与 Windows 中的换行符序列 (CR+LF) 通常是行分隔符不同,因此文本文件通常不以换行符结尾。)
如果文件的最后一行没有被换行符终止,一些文本处理工具不会正确处理文件的最后一行,尽管大多数现代程序会在缺少换行符时自动添加最后的换行符。缺少最后的换行符可能会产生令人惊讶的后果;例如,如果将文件与另一个文件afg连接,将与另一个文件的第一行连接,而不是在它自己的一行上。
许多编辑器会自动以换行符结束文件,因此它们是有效的文本文件。默认情况下不系统地执行它的那些通常可以配置为这样做。