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.
0
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ę :)