Jeśli zrobię to na pliku Mac, otrzymam prawidłową liczbę linii, ale podwoję linie w plikach unix:
cat /path/to/file.txt | tr '\r' '\n' | wc -l
Jeśli zrobię to w pliku unix, otrzymam prawidłową liczbę linii, ale zero linii w pliku Mac:
cat /path/to/file.txt | wc -l
Jak uzyskać prawidłową liczbę wierszy w jednym poleceniu bez względu na pochodzenie systemu plików (Linux, Mac, Windows)?
command-line
EcomEvo
źródło
źródło
\n
począwszy od Mac OS X 10.0 (2001). Czy naprawdę masz starożytne pliki Mac\r
?Odpowiedzi:
Sugeruję sprawdzenie plików, które obsługujesz, w którym stylu linii jest używany.
wypisze zawartość pliku w bajtach szesnastkowych i „ASCII”, szuka bajtów 0A i 0D.
Mam funkcję bash, która jest definiowana w ~ / .profile / lub ~ / .bashrc, aby pomóc w tego rodzaju problemach:
źródło