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.
Bash Czy plik jest tekstowy
- Rejestracja: dni
- Ostatnio: dni
- Postów: 11
0
- Rejestracja: dni
- Ostatnio: dni
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).
- Rejestracja: dni
- Ostatnio: dni
- Postów: 89
0
Użyj polecenia file. Output możesz sobie zgrepować i porównywać w if'ie.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 227
1
#!/bin/bash
if file "$1" | grep -q text$ ;
then
echo "to tekst";
else
# jesli nie to...
echo "to nie tekst";
fi