我有2个文件:d和t。我希望能够合并这些文件,以便文件 t 的第一行后面跟着一个制表符,然后是 d 的第一行。对于较短的线路,paste t d
似乎效果很好。
$ cat d t
Highly reactive metals in group 1A of the periodic table.
Fairly reactive metals in group 2A of the periodic table.
alkali metals
alkaline earth metals
$ paste d t
Highly reactive metals in group 1A of the periodic table. alkali metals
Fairly reactive metals in group 2A of the periodic table. alkaline earth metals
$ paste t d
alkali mHighly reactive metals in group 1A of the periodic table.
alkalineFairly reactive metals in group 2A of the periodic table.
尝试粘贴完整的句子似乎表现得很奇怪。如上所示,术语被缩减为前 8 个字符。
$ paste t d > temp
$ gedit temp &
$ vim temp
打开 gedit 会显示每个术语后面的换行符。 Vim 显示了这个:
alkali metals^M Highly reactive metals in group 1A of the periodic table.
alkaline earth metals^M Fairly reactive metals in group 2A of the periodic table.
嗯,这似乎很容易解决。:%s/^V^M//g
删除所有回车符,一切都正确显示。但这些回车符最初是如何出现的呢?
虽然我的问题确实涉及来自 Windows 的文本文件中的回车符,这使得事情在类 Unix 环境中表现得很奇怪,但它并不重复这个问题。问题相似,但表现却截然不同。我花了大约一个小时才弄清楚回车符甚至是罪魁祸首,因为我无法通过网络搜索找到足够类似问题的实例。这就是为什么我在自己解决了这个问题后发布了这个。