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.

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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.