0

LINUX(Debian)からPython CGIスクリプトにASCIIファイルを読み込んでいます。ここで、Webページを介して編集され、保存されます。

グラフィカルテキストエディタを使用すると、編集されたファイルと編集されていないファイルは同じように表示され、正しくフォーマットされます。

viを使用すると、編集されたファイルにctrl MはEOLマーカーが含まれ、すべての行が1つにまとめられますが、編集されていないファイルは正しくフォーマットされます。in viを使用:set Listして制御文字を表示すると、編集されたファイルは上記のように残りますが、編集されていないファイルで$はEOLマーカーとして表示されます。LINUXEOLがctrl0x0Dであることは知っていますが、何$ですか?

なぜ$正しくフォーマットされ、フォーマットさctrl Mれないのですか?

4

2 に答える 2

1

は(特定のモードでは)$によって表示されます。viファイルの内容には含まれていません。あなたはod -cx yourfileそれをチェックするために使うことができます。

于 2012-07-17T10:36:48.867 に答える
1

viでは、$EOL文字と一致します。ここに示すように、でEOL文字を変更でき:set fileformat=XXXます。試したことがないので、ファイルタイプを変更した場合に新しいEOLと一致するかどうかは100%わかりません。しかし、そのリンクには、残りの回答に役立つ情報が含まれています。$

^Mor(CTRL-M)文字は、キャリッジリターンとほぼ同じです。

あなたが言っていることから、グラフィカルテキストエディタは、改行なしの単なるキャリッジリターン(CR)であるMacのようなEOLを使用しているように聞こえます。したがって、^M文字とすべての行が1つにまとめられます。キャリッジリターンとラインフィード(CR + LF)であるWindows / DOS EOLを使用している場合、文字を期待し^Mますが、各行は独自の行になります。

この答え^Mは、文字を取り除く方法を説明しています。dos2unixCR + LFではなくCRだけを処理する方法がわからないため、使用しません。

于 2012-07-17T14:45:32.343 に答える