Strona 1 z 1

[+] Zamiana spacji - tr czy sed?

: 13 stycznia 2009, 09:56
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?

: 13 stycznia 2009, 10:04
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?

: 13 stycznia 2009, 10:40
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.