GNU/Linux >> Znalost Linux >  >> Linux

Linux - zkontrolujte, zda na konci souboru není prázdný řádek

Našel jsem řešení zde.

#!/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

DŮLEŽITÉ:Ujistěte se, že máte právo skript spustit a přečíst!chmod 555 script

POUŽITÍ:

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

Stačí napsat:

cat -e nameofyourfile

Pokud je nový řádek, bude končit $ Pokud ne, bude končit % symbol.


Odpověď Oliviera Pirsona je úhlednější než ta, kterou jsem zde původně zveřejnil (také správně zpracovává prázdné soubory). Upravil jsem své řešení tak, aby odpovídalo jeho.

V 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
}

Jako skript shellu, který můžete volat (vložte jej do souboru chmod +x <filename> aby byl spustitelný):

#!/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

\Z meta-znak znamená absolutní konec řetězce.

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

Zde se tedy díváte na nový řádek na absolutním konci řetězce. file_get_contents na závěr nic nepřidá. ALE načte celý soubor do paměti; pokud váš soubor není příliš velký, je to v pořádku, jinak budete muset přinést nové řešení vašeho problému.


Linux
  1. Linux – Proč v systému není přítomen žádný souborový systém Rootfs?

  2. Jak vyprázdnit soubor protokolu v Linuxu

  3. Vytvářejte soubory pomocí příkazového řádku v Linuxu

  1. Zkontrolujte stav souboru v systému Linux pomocí příkazu stat

  2. 4 nástroje ke stažení libovolného souboru pomocí příkazového řádku v Linuxu

  3. Linux - grep od určitých řádků až do konce souboru

  1. Zkopírujte a vložte na příkazový řádek Linuxu pomocí xclip

  2. Pokročilé použití prohlížeče méně textových souborů v Linuxu

  3. Jak extrahovat soubor tar.gz v Linuxu pomocí příkazového řádku