GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux - Prüfen Sie, ob am Ende einer Datei eine leere Zeile steht

Die Lösung habe ich hier gefunden.

#!/bin/bash
x=`tail -n 1 "$1"`
if [ "$x" == "" ]; then
    echo "Newline at end of file!"
else
    echo "No Newline at end of file!"
fi

WICHTIG:Stellen Sie sicher, dass Sie das Recht haben, das Skript auszuführen und zu lesen!chmod 555 script

NUTZUNG:

./script text_with_newline        OUTPUT: Newline at end of file!
./script text_without_newline     OUTPUT: No Newline at end of file!

Geben Sie einfach ein:

cat -e nameofyourfile

Wenn es einen Zeilenumbruch gibt, endet dieser mit $ Symbol. Wenn nicht, endet es mit einem % Symbol.


Die Antwort von Olivier Pirson ist ordentlicher als die, die ich ursprünglich hier gepostet habe (sie behandelt auch leere Dateien korrekt). Ich habe meine Lösung so bearbeitet, dass sie mit seiner übereinstimmt.

In bash:

newline_at_eof()
{
    if [[ -s "$1" && -z "$(tail -c 1 "$1")" ]]
    then
        echo "Newline at end of file!"
    else
        echo "No newline at end of file!"
    fi
}

Als Shell-Skript, das Sie aufrufen können (in eine Datei einfügen, chmod +x <filename> um es ausführbar zu machen):

#!/bin/bash
if [[ -s "$1" && -z "$(tail -c 1 "$1")" ]]
then
    echo "Newline at end of file!"
else
    echo "No newline at end of file!"
fi

Die \Z Meta-Zeichen bedeutet das absolute Ende der Zeichenkette.

if (preg_match('#\n\Z#', file_get_contents('foo.txt'))) {
    echo 'New line found at the end';
}

Hier sehen Sie also eine neue Zeile am absoluten Ende der Zeichenfolge. file_get_contents fügt am Ende nichts hinzu. ABER es wird die gesamte Datei in den Speicher laden; Wenn Ihre Datei nicht zu groß ist, ist es in Ordnung, andernfalls müssen Sie eine neue Lösung für Ihr Problem finden.


Linux
  1. Verwenden von Google Drive über die Linux-Befehlszeile

  2. Wie füge ich am Ende einer Datei einen Zeilenumbruch hinzu?

  3. Eine zeilenorientierte Datei lesen, die nicht mit einem Zeilenumbruch enden darf?

  4. Linux – Warum ist kein Rootfs-Dateisystem auf dem System vorhanden?

  5. Zum Anfang oder Ende der Datei in Vim gehen [Schneller Tipp]

So prüfen Sie die Rechtschreibung auf der Linux-Befehlszeile mit Aspell

Einführung in das Linux-Dateisystem

Meistern Sie die Linux-Befehlszeile

Zeigen Sie den Inhalt einer Datei in der Linux-Befehlszeile an

Überprüfen Sie die Zeitzone in Linux

5 Befehle zum Anzeigen des Inhalts einer Datei in der Linux-Befehlszeile