cat file cmdを実行すると%が行末で表示されるのはなぜですか? [重複]

cat file cmdを実行すると%が行末で表示されるのはなぜですか? [重複]

これは本当に混乱しています。 cat cmdを実行すると、常にファイルの末尾に%などの内容が表示されますが、エディタまたは崇高なファイルでファイルを開くと消えます。もしそうなら、私のファイルが正しい形式であることを確認する方法は?たとえば、cmdを実行します。cat -e test.txt

abc$
sdf$
adg$
adsf$
afg%

答え1

それzsh は、ファイルが終了していない行でどのように終了するかを示します。。 (混乱しています)、使用可能な文字や他の文字の代わりに文字をfish使用するシェルに似ていることがわかります。^J

他のほとんどのシェル(またはこの機能をオフにした場合はzsh)では、同じ行の直後にプロンプ​​トが表示され、afg一部のシェルではプロンプトが左マージンにあると予想しているため、表示不良があります。

一般的に、Unixファミリーシステムでは、改行文字は行終端です。各行は改行文字で終わる必要があります。テキストファイルは一連の行で構成されるため、空でないテキストファイルは常に改行文字で終わります。 (これは改行シーケンス(CR + LF)が通常行区切り文字であるため、テキストファイルが通常改行で終わらないWindowsとは異なります。)

一部のテキスト処理ツールは、ファイルが新しい行で終わらないと、ファイルの最後の行を正しく処理しません。ただし、ほとんどの最新プログラムは、最後の行がない場合は自動的に追加します。最後の改行文字が欠落すると、驚くべき結果が生じる可能性があります。たとえば、ファイルが他のファイルに関連付けられている場合は、それafg自体の行ではなく、他のファイルの最初の行に関連付けられます。

多くの編集者は、有効なテキストファイルになるように自動的にファイルを折り返します。デフォルトでは、このタスクを体系的に実行しないシステムもそのように構成できることがよくあります。

関連情報