Usuwanie polskich znaków z dokumentu tekstowego w systemie Linux
Musiałem ostatnio pozbyć się polskich znaków z pliku tekstowego pracując w systemie Linux. Z pewnością jest sporo sposobów, ale ponieważ nie chciało mi się szukać wymyśliłem własny. Kilka lat temu spisałem kody wszystkich polskich znaków w Windows-1250, ISO-8859-2 i UTF-8. Dokument ten umieściłem tutaj. Aby usunąć polskie znaki wystarczy użyć polecenia tr
, które idealnie się do tego nadaje, umieszczając kody znaków (ósemkowo) jako ciąg do zamiany. Zakładam, że mamy do czynienia z kodowaniem ISO-8859-2 - z UTF-8 nie chciało mi się kombinować, ze względu na 2-bajtowe kody znaków, co trochę skomplikowałoby polecenie. Zapisu do ISO-8859-2 można dokonać w większości edytorów tekstowych dostępnych w systemie Linux. Skrypt usuwający polskie znaki przy takich założeniach wygląda tak:
#!/bin/sh
cat $1 | tr '\277\363\263\346\352\266\261\274\361' zolcesazn > $1
PS. Bardziej zaawansowanym narzędziem do manipulacji kodowaniem jest polconv.