Re: Szukam małego programu do sortowania linii w plikach txt

Autor: Araneus Diadematus <warchlak_at_chlewik.pl>
Data: Wed 14 Sep 2011 - 15:37:03 MET DST
Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=original
Message-ID: <4e70ae06$1@news.home.net.pl>

Użytkownik "Mariusz Kruk" <Mariusz.Kruk@epsilon.eu.org> napisał w wiadomości
news:slrnj714er.h11.Mariusz.Kruk@epsilon.rdc.pl...
(...)
> Bah. Nie zauważyłem, że to grupa Windows :-)
> Ale to nie zmienia faktu, że locale powinien respektować.

Rozgryzłem temat (i rozwiązałem) - otóż, SORT poprawnie posortuje wtedy, gdy
pliterki są w wiekowym LATIN-2 (nie mylić z "ISOlatką"). Ten sam zestaw
wrzuciłem do notepada (poprzednie prosto spod konsoli "copy con") i też
poddałem sortowaniu, rozrzucił, jak rozrzutnik gówno na polu... Czyli
rozbija się o stronę kodową chyba
Poradziłem sobie, konwertując na czas sortowania plik z Windows1250 na stary
Latin2, a po sortowaniu przywracają Windows 1250, sam SORT nie reaguje na
zmianę strony kodowej i robi po swojemu.
Rozwiązanie siedzi tu:
http://ipsec.pl/cpl
A skrypt, który to realizuje (wzorzec, trzeba przeedytować do własnych
potrzeb - ścieżki, czy zmienne do podawania parametrów, itd.) jest taki:
@echo off
@Copy du.pa.txt du.pa.bak
@C:\convpl3\cpl e3 du.pa.bak du.pa.txt1
@sort du.pa.txt1 > du.pa.bak
@c:\convpl3\cpl 3e du.pa.bak cipa.txt
@del du.pa.bak
@del du.pa.txt1

plikiem wejściowym jest du.pa.txt
plikiem niby-tymczasowym jest du.pa.bak (może być inna nazwa, wybór
użytkownika), jest kopią, która będzie obrabiana.
w trzeciej linii mamy konwersję tego pliku do du.pa.txt1, który zawiera
przekonwertowaną z Win1250 na Latin2 treść.
Sortujemy ten plik, wyprowadzając wynik do du.pa.bak (żądaną treść już mamy,
więc śmiało możemy tę kopię nadpisać), a następnie konwertujemy z powrotem,
wynik jest w pliku cipa.txt, zawiera posortowaną zawartość pliku du.pa.txt,
który sobie zostawiamy, choć możemy dopisać sobie do skasowania, lub jak
oryginał niepotrzebny, przemianować cipa.txt na du.pa.txt, jak oryginał.
Dwie ostatnie linijki kasują niepotrzebne już pliki.

To tyle, co na szybko ustaliłem, skrypt sprawdziłem, działa. Teraz
przeedytować, aby odpowiadał potrzebom, wrzucić jego wywołanie do "cron-a" i
problem za nami :)

-- 
Proszę, podpisz petycję...
http://www.petycje.pl/petycja/7778/
w_sprawie_okrutnego_zabicia_psa_przez_policjantów.html
(nie sklejaj linku, kliknij w pierwszą część)
Received on Wed Sep 14 15:40:03 2011

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Wed 14 Sep 2011 - 15:42:01 MET DST