貼り付けコマンドが改行文字を追加するのはなぜですか? [コピー]

貼り付けコマンドが改行文字を追加するのはなぜですか? [コピー]

2つのファイルがあります。Dそしてティー。私はファイル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のような環境で奇妙に動作しますが、重複しません。この問題。問題は似ていますが、症状はまったく異なります。 Web検索で同様の問題のケースが十分に見つからなかったため、キャリッジリターンが犯人であるかどうかを判断するのに約1時間かかりました。それで私はこの問題を直接解決して投稿することになりました。

答え1

t ソースファイルは Windows 8 でメモ帳を使用して作成され、Ubuntu 13.04 で My Home ディレクトリにコピーされました。 dのソースコードはUbuntuのgeditで書かれています。したがって、キャリッジリターン文字は常にファイルにあります。異なるオペレーティングシステム間でファイルを移動すると、同様の問題が発生することがよくあります。

改行の違い

行末変換

関連情報