Ponownie zakoduj i wyczyść pliki tekstowe w Terminalu

1

Mam partię plików tekstowych o nieokreślonym kodowaniu, które muszę wyczyścić z nietypowych znaków. Użyłem biblioteki czad Pythona, aby ustalić, że 87% jest zgodne z ISO-8859-2, ale nadal zawierają znaki niezgodne, które uniemożliwiają im odczytanie R - opisane w tym poście SO . Zastanawiam się, czy istnieje sposób - najlepiej metoda wiersza poleceń - aby je wyczyścić wsadowo i przekonwertować na powiedzmy UTF-8, a wszelkie niepotwierdzające znaki zostaną zamienione na coś w rodzaju „~”. Bardzo wdzięczny za pomoc.

geotheory
źródło

Odpowiedzi:

2

Czy próbowałeś z iconv? Nie wiem, czy OSX zawiera to polecenie, ale oto przykład:

iconv -t UTF-8 myfile.txt

Jeśli to się nie powiedzie, spróbuj transliterować:

iconv -t UTF-8//TRANSLIT myfile.txt

Aktualizacja (z komentarzy):

Po odrobinie eksperymentów iconv -t UTF-8//TRANSLIT -c infile > outfile.txtwykonałem robotę. Dzięki chłopaki.

Savvas Radevic
źródło
Niestety dostajęiconv: SMKA121212 copy:13:121: cannot convert
geotheory
Zmodyfikowałem moją odpowiedź, spróbuj // TRANSLIT, jak pokazano powyżej
Savvas Radevic,
System OS X iconv nie obsługuje transliteracji.
Daniel Beck
1
Po odrobinie eksperymentów iconv -t UTF-8//TRANSLIT -c infile > outfile.txtwykonałem robotę. Dzięki chłopaki.
geotheory
2
Implementacja tego libiconv iconvz OS X obsługuje //TRANSLITi //IGNORE. Zobaczyć man iconv_open.
Lri