Windows-Dateien können nach dem Hochladen auf einen Linux-Server nicht gelesen werden. Es stellt sich heraus, dass es sich um ein Zeilenumbruchproblem handelt.

Als ich die in vim unter Linux erstellte Datei test.txt nach Windows kopierte, wurde der gesamte Inhalt in einer Zeile angezeigt. Als ich die unter Windows erstellte Datei test.txt nach Linux kopierte, lief das Linux-Programm nicht ordnungsgemäß. Wenn Sie ein Linux-Shell-Skript unter Windows schreiben und es zur Ausführung nach Linux kopieren, treten Probleme auf. Das Problem liegt im Zeilenumbruchzeichen ^M!

So entfernen Sie \r in einer Windows-Datei unter Linux

Kopieren Sie die in vim geschriebene Datei test.txt nachWenn Sie ein Linux-Shell-Skript unter Windows schreiben und es nach Linux kopieren, treten Probleme auf. Das Problem liegt in^M auf dem Körper!

In Unix-Systemen endet jede Zeile mit "<换行>", das heißt "\n";
Unter Windows endet jede Zeile mit "<换行><回 车>", das heißt "\n\r".
Eine direkte Folge davon ist, dass beim Öffnen einer Datei unter Unix-System in Windows der gesamte Text in eine Zeile umgewandelt wird.
Wenn eine Datei in Windows unter Unix geöffnet wird, kann am Ende jeder Zeile ein zusätzliches ^M-Symbol stehen.
Verwenden Sie vim zur Verarbeitung
Geben Sie im Vim-Befehlsmodus %s/^M$//g ein
Durch Drücken der Eingabetaste werden automatisch alle ^M-Zeichen in der Datei gelöscht.
Was bedeutet dieser Befehl? % bedeutet, dass die gesamte Datei abgeglichen werden soll, s bedeutet Ersetzung, ^M muss mit Strg + V Strg + M eingegeben werden, $ nach M bedeutet, dass der Inhalt am Zeilenende abgeglichen werden soll, und das letzte g bedeutet, dass der abgeglichene Inhalt in jeder Zeile ersetzt werden muss.
Sobald Sie die Bedeutung des Befehls verstanden haben, können Sie ihn flexibler verwenden. Wenn Sie beispielsweise alle Vim-Elemente in einer Datei durch VIM ersetzen möchten, können Sie einen Befehl wie diesen verwenden: :%s/Vim/VIM/g.

Methode 1: :%s/^M//g

Im Befehlsmodus: Geben Sie ein: %s/^M//g und drücken Sie dann die Eingabetaste, um
Beachten Sie, dass die Eingabe von „^M“ durch „Strg+v“ bzw. „Strg+M“ generiert wird.

Methode 2::set fileformat=unix

Öffnen von Textdateien mit vi
vi Der Name der zu bearbeitenden Datei
Im Befehlsmodus eingeben
:set fileformat=unix
:w

Methode 3: Verwenden des Sed-Tools

Verwenden des sed-Tools
sed 's/^M//' Dateiname > temporärer Dateiname

Methode 4: tr -d '\r'

Da unter Windows im Wagenrücklaufzeichen ein zusätzliches „\r“ vorhanden ist, können Sie durch Löschen von „\r“ natürlich auch Folgendes erreichen:
tr -d '\r'

Methode 5: dos2unix-Befehl (am häufigsten verwendete Methode)

dos2unix-Befehl:
dos2unix Der Name der zu konvertierenden Datei
Konvertieren Sie Dateien direkt in das Unix-Format
Mit der obigen Methode können unter Windows bearbeitete Dateien in Dateien konvertiert werden, die unter Linux gelesen werden können.

1/5 - (1 Stimme)

Das ist eine gute Idee

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * Mark