
Diese FrageUnddiese Frageweisen Sie darauf hin, dass es im Allgemeinen Standard ist, Textdateien mit Zeilenumbruchzeichen zu beenden, um den POSIX-Standard zu erfüllen, und dass dies bei GNU-Tools und anderen POSIX-kompatiblen Tools zu erwarten ist.
Als C#-Entwickler weiß ich jedoch, dass Tools, die mit csproj
Dateien arbeiten, im Allgemeinen kein abschließendes Newline-Zeichen enthalten. Ich habe auch Tools gesehen, die das abschließende Newline-Zeichen aus Dateien entfernen json
. xml
Ich denke, es ist sinnvoll, das Einfügen eines Newline-Zeichens am Ende von Textdateien zu vermeiden, wenn die gängigen Tools, die mit den Dateien arbeiten, sie am Ende einfach wieder entfernen würden.
Welche Textdateitypen sollten also aufgrund von Tools nicht mit Zeilenumbruchzeichen enden?
Antwort1
Obwohl es sich bei einem symbolischen Link nicht genau um eine Textdatei handelt, handelt es sich tatsächlich um eine kleine Datei, die einen Textabschnitt enthält (der oft in den Inode selbst passt, sodass der Datei keine Datenblöcke zugewiesen werden müssen).
Ein symbolischer Link kann mit einer neuen Zeile enden, unter den meisten Umständen sollte dies jedoch nicht der Fall sein.
Ein anderer Dateityp, der nicht mit einem Zeilenumbruch enden sollte (oder kann), ist die leere Datei.
Unter UNIX ist eine Textdatei entweder leer oder enthält eine oder mehrere möglicherweise leere Zeilen, die jeweils durch ein neues Zeilenende abgeschlossen werden. Wenn die letzte Zeile nicht durch ein neues Zeilenende abgeschlossen wird, handelt es sich bei der Datei nicht um eine richtige Textdatei.
Die leere Datei enthält überhaupt keine Bytes. Sobald Sie eine neue Zeile hinzufügen, haben Sie ihren „Typ“ von leer auf nicht leer geändert.
Antwort2
Eine Textdatei, die als Eingabe für die von verarbeiteten Suchbegriffe verwendet wird, grep -f
darf nicht mit einem Zeilenumbruch enden.(** im Texteditor)sonst würde das zu allem passen
Sie können es an diesem Beispiel selbst ausprobieren
grep findet nicht alle Instanzen des Gens
Bearbeiten:Bitte beachten Sie, dass es in dieser Frage um das Sammeln von Beispielen geht, bei denen„Textdateien sollten aufgrund von Tools nicht mit Zeilenumbruchzeichen enden.“Obwohl meine erste Aussage nicht allgemein gilt, ist sie ein perfektes Beispiel für solche"Typ der Textdatei"(mit einem Texteditor erstellte Datei) und daher im Kontext der Frage gültig, denn das ist die Erfahrung, die jeder macht, wenn er einen Texteditor verwendet.
Es handelt sich nicht um eine allgemeine Aussage zum \n
Zeilenumbruchzeichen auf Dateisystemebene, sondern um ein Beispiel für einen Sonderfall aus einemnormaler BenutzerPerspektive
Danke @Kusalananda @ilkkachu für die Klarstellung, dass es sich in Wirklichkeit um zwei \n\n
Zeilenumbruchzeichen handelt (obwohl eines vom Texteditor stillschweigend hinzugefügt wird und daher unsichtbar ist).