[+] Zamiana spacji - tr czy sed?

Potrzebujesz pomocy z C, C++, perl, python, itp.
el_kolo
Posty: 7
Rejestracja: 13 stycznia 2009, 09:46

[+] Zamiana spacji - tr czy sed?

Post autor: el_kolo »

Witam,
mam następujący problem. Posiadam bardzo duży plik DAT (kolo 5.5GB).

Kod: Zaznacz cały

head plik.DAT
wyświetla wszystkie linie ze spacjami, jednak w edytorze (vi, nano) spacje widoczne są jako '^?'. Nie możliwe jest sortowanie po interesujących mnie kolumnach.
W mniejszych plikach około 500MB podmieniłem spacje za pomocą PSPada, jednak plik 5.5GB jest nie do przełknięcia dla pspada. Próbowałem działać sedem i ,,tr'' ale moje wysiłki na nic się zdały. Ma ktoś jakiś pomysł na podmianę "^?" (widoczne w edytorze linuksowym, gdyż cat, head czy tail widzi wyświetlony tekst jako spację) na prawdziwe spacje?
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

Niekonieczne te spacje to ciąg znaków '^?'. Jak już ustalisz czym one są (najlepiej heksadecymalnie) to

Kod: Zaznacz cały

cat plik dat | sed_który_zastąpi_^? >plikok.dat
Wykorzystaj \xnn, gdzie nn to heksadecymalna reprezentacja bajtu. Dla spacji będzie to \x20. Wrzuć może tutaj head plik.dat, jeśli nie jest za duże?
el_kolo
Posty: 7
Rejestracja: 13 stycznia 2009, 09:46

Post autor: el_kolo »

lis6502 pisze:Niekonieczne te spacje to ciąg znaków '^?'. Jak już ustalisz czym one są (najlepiej heksadecymalnie) to

Kod: Zaznacz cały

cat plik dat | sed_który_zastąpi_^? >plikok.dat
Wykorzystaj \xnn, gdzie nn to heksadecymalna reprezentacja bajtu. Dla spacji będzie to \x20. Wrzuć może tutaj head plik.dat, jeśli nie jest za duże?
Te spacje to w hexie 7F.

Dziękuję bardzo za pomoc.

Kod: Zaznacz cały

sed 's/\x7F/\x20]i śmiga jak szalone.
ODPOWIEDZ