Bash Czy plik jest tekstowy

0

Problem jest tego typu że skrypt ma stwierdzić czy plik podany w argumencie jest tekstowy jak tak to wyświetlić 10 linii od początku i od końca.
Moje pytanie brzmi: Jak określić czy plik jest tekstowy i użyć tego do konstrukcji warunku.

2

Odpowiedź ogólna:

Możesz przyjąć, że się nie da. Alternatywnie, możesz sprawdzić, czy te 10 linii na początku zawiera tylko znaki drukowalne, w przeciwnym wypadku przyjąć, że jest to plik binarny.

Odpowiedź mniej więcej prawidłowa:

Sprawdź MIME. Jeśli to text/* to jest to plik tekstowy, jednak bywają wyjątki (np. application/javascript lub application/xml).

0

Użyj polecenia file. Output możesz sobie zgrepować i porównywać w if'ie.

1
#!/bin/bash
if  file "$1" | grep -q text$ ;
then

        echo "to tekst";
else
    # jesli nie to...
        echo "to nie tekst";
fi
0

Dziękuję bardzo za pomoc i wskazówki udało się :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1