Ich habe eine Notepad-Datei unter Windows erstellt und auf Ubuntu kopiert. Die Datei enthält einige Iptables-Regeln. Nachdem die Datei ausführbar gemacht chmod +x
und ausgeführt wurde, funktionierte sie nicht mehr.
Als ich jedoch eine Ubuntu ( gedit ) -Datei erstellte und denselben Inhalt aus der Notepad-Datei kopierte, sie ausführbar machte und ausführte, funktionierte sie.
Was soll ich tun, damit die Notepad-Datei unter Ubuntu ausgeführt wird?
Antworten:
Windows und Linux haben unterschiedliche Symbole für das Zeilenende.
Sie können das
dos2unix
Dienstprogramm installieren, das das Problem behebt:Führen Sie es so aus:
Es gibt auch das
unix2dos
Dienstprogramm.Die Windows-zu-Linux-Konvertierung kann auch ohne Installation einer speziellen Software durchgeführt werden
Hinweis: Eingabe- und Ausgabedateien müssen unterschiedlich sein.
Eine sed- Version bearbeitet die Datei "an Ort und Stelle":
Oder schreiben Sie in eine andere Datei:
quelle
dos2unix winfile.txt linuxfile.txt
versucht beide Dateien zu konvertieren. Verwenden Sie diesen Befehldos2unix -n winfile.txt linuxfile.txt
Unter Windows müssen Sie das EOL-Format (End of Line) in Notepad ++ in UNIX ändern:
Auf diese Weise wird es auch auf Ubuntu funktionieren.
quelle
Windows verwendet CR + LF für Zeilenumbrüche. In Linux / Unix benötigen Sie LF. Daher müssen Sie in Ihrem Skript CR + LF in LF ersetzen:
Installieren
dos2unix
Und korrigieren Sie Ihr Skript über
oder über
wenn Sie eine andere Ausgabedatei benötigen
Weitere Informationen hier
von
man dos2unix
quelle
Ich benutze Cygwin unter Windows.
Öffne die Datei mit vi. Dann treten Sie ein
speichert die Datei mit Unix-Zeilenendezeichen.
quelle
Sie können Vim im Ex-Modus verwenden:
%
Wählen Sie alle Zeilen auss
Ersatz\r
Wagenrücklaufx
speichern und schließenquelle