Czy istnieje narzędzie mac2unix?

0

To pytanie jest bezpośrednio związane z innym pytaniem, które tutaj zadałem.

Linux / Unix mają ładne narzędzia dos2unixi unix2dosdo konwersji plików tekstowych między dwoma systemami operacyjnymi. Czy istnieją podobne narzędzia dla komputerów Mac i Linux?

octopusgrabbus
źródło
Jak powiedział @Spiff, prawdopodobnie nie potrzebujesz niczego specyficznego dla komputerów Mac, ponieważ MacOS X jest pod UNIX-em. Czy używasz systemu Mac OS 9 lub wcześniejszego? Do jakiej wersji systemu MacOS / System potrzebujesz tego?
Rich Homolka,
Stary MacOS używa \ r jako linii podziału. Obecna wersja programu Microsoft Excel dla komputerów Mac nadal używa \ r jako podziału wiersza podczas zapisywania pliku tekstowego. W przypadku tych plików uruchom „mac2unix” lub „dos2unix -c Mac”, aby przekonwertować podział linii na \ n.
Ben Lin

Odpowiedzi:

3

Nie wiem co dos2unixi unix2dosrobię dokładnie, ale domyślam się, że zmienia on koniec linii pliku tekstowego z formatu dos na format uniksowy i odwrotnie. Mac (od OS X) i Unix używają tych samych zakończeń linii (line-feed, '\ n'), więc jeśli o to się martwisz, nie musisz nic robić, aby przenosić pliki tam iz powrotem.

Użycie dos2unix -c Mac mac_filezamienia plik sformatowany na komputerze Mac w plik sformatowany w systemie Unix.

Eric
źródło
1
@octopusgrabbus Nie sądzę, aby -c macbyło poprawne. Myślę, że jest to pozostałość po latach 80. i 90., gdy klasyczne pliki tekstowe Mac OS (System 1 do Mac OS 9) miały nagie CR (powrót karetki) jako zakończenia linii). Mac OS X korzysta z końcówek linii uniksowych (nagie LF; linie).
Spiff,
@Eric bądź ostrożny \n. W wielu kontekstach jest to technicznie „nowa linia”, co oznacza, że ​​zostanie zastąpiona prawidłową sekwencją końca linii zależną od systemu operacyjnego. Tak więc w systemie Mac OS X i innych systemach uniksowych zostanie zastąpiony znakiem LF ASCII LF (linefeed) 0x0a, ale w systemie Windows może zostać zastąpiony CRLF (0x0d0a). W klasycznym Mac OS (Mac OS 9 i wcześniejszych) \nsekwencja w MacPerl zostałaby zastąpiona zakończeniem linii CR systemu klasycznego Mac OS (tylko znak powrotu karetki 0x0d ASCII).
Spiff,
Właśnie wypróbowałem dos2unix -c Mac na systemie Centos 6 i zmieniłem plik „Mac” w plik Linux. Oznacza to, że usunął <CR>i zastąpił go <LF>postacią. W przypadku zwykłego pliku systemu Windows <CR><LF>usunięto tylko plik <CR>.
octopusgrabbus,
Ktokolwiek to edytował -c Mac, dziękuję. Właśnie to musiałem zrobić, aby działało.
octopusgrabbus
1

OS X używa zakończeń linii LF i plików zakodowanych w UTF-8 bez BOM w większości miejsc, takich jak inne platformy uniksowe. Zakończenia linii CR były używane głównie w Mac OS 9 i wcześniejszych wersjach.

Na przykład skrypty AppleScript i tekst skopiowane z niektórych widoków w Finderze i iTunes nadal używają zakończeń linii CR. Można przekonwertować zakończeń linii CR do LF z mac2unix, dos2unix -c maclub tr \\r \\n. dos2unixi mac2unixmożna go zainstalować za pomocą brew install dos2unix.

Jeśli potrzebujesz przekonwertować pliki Windows do formatu używanego przez OS X, możesz użyć dos2unix. Konwertuje zakończenia linii CRLF na LF. Jeśli plik jest zakodowany jako UTF-16, również konwertuje plik na UTF-8, a jeśli plik ma BOM, usuwa go.

Lri
źródło