Nowe posty

Autor Wątek: Zamiana znaków  (Przeczytany 6975 razy)

slawekdw

  • Gość
Zamiana znaków
« dnia: 2011-03-25, 14:21:28 »
Witam
Mam pewnien problem, potrzebuje zdeszyfrować baze dbf, znalazlem klucz szyfrujący, Jet to poprostu zamiana znaków. probowałem TR ale wywala błąd ponieważ używane są znaki specjalne. poniżej co chce zmianic na co:

tr '[!"#$%&'()*}~+-./0123456789:;>@ABCEFGHIJKDL,M=?NPQRSTbUVWXYZ[\\]^_acdefhijhlmngoOp`]' '[0123456789-.ABCĆDEĘFGHIJKLŁMNOPQRSTUVWXYZŚŹĄŻŃÓabcćdeóęfghijklłmnopqrstuvwxyzśźążń]'

prosze o pomoc w rozwiązaniu problemu
na wejsciu chce dać plik tekstowy rodzielony [tab] a na wyjsciu zdekodowany plik

chmooreck

  • Gość
Zamiana znaków
« Odpowiedź #1 dnia: 2011-03-25, 14:28:28 »
może napisz jaki masz błąd...
hint: '\\' w konsoli powoduje, ze shell nie interpretuje znaku

slawekdw

  • Gość
Zamiana znaków
« Odpowiedź #2 dnia: 2011-03-25, 14:31:42 »
błąd to:
-su: syntax error near unexpected token `('

chmooreck

  • Gość
Zamiana znaków
« Odpowiedź #3 dnia: 2011-03-25, 14:33:10 »
ten ' przed ( kończy string
'\\' w konsoli powoduje, ze shell nie interpretuje znaku

slawekdw

  • Gość
Zamiana znaków
« Odpowiedź #4 dnia: 2011-03-25, 14:44:03 »
Nic z tego w zestawie znaków do zastąpienia znak \\ ma być zstąpiony l
dodalem przed ' znak \\ to wywalil ze nie odpowiada mu ( wiec dalem mu \\ przed ( .
teraz po wykonaniu skryptu basch sie zgłasza >

Online Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3068
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Zamiana znaków
« Odpowiedź #5 dnia: 2011-03-25, 15:42:42 »
tr jest wybrzydzający na '\\' - dopuszcza tylko kilka kombinacji.
Obejść to można podając niektóre znaki jako ich kody ósemkowe. Zastąpić trzeba (żeby nie było syfu)
' przez \\047
\\ przez \\134
- przez \\055
* przez \\052
A tak przy okazji - masz tam PLiterki. A, hm, w jakim kodowaniu? UTF8 może ci zrobić niezłą jatkę w pliku
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

chmooreck

  • Gość
Zamiana znaków
« Odpowiedź #6 dnia: 2011-03-25, 15:49:39 »
da się to zrobić za pomocą tr - pokombinuj
może jak to umieścisz w jakimś edytorze z kolorowaniem składni, to będzie ci prościej...

slawekdw

  • Gość
Zamiana znaków
« Odpowiedź #7 dnia: 2011-03-25, 15:54:55 »
No to jest masakra, ale faktycznie lepiej ósemkowo to zrobic.
A czy tr przetwarza znak po znaku ? Chcialbym uniknąc sytuacji kiedy to np. znak ) zamienia na liczbe 8 a następnie liczbe 8 na K

slawekdw

  • Gość
Zamiana znaków
« Odpowiedź #8 dnia: 2011-03-28, 10:03:28 »
Witam ponownie
Plik zakodowany jest w Windows-1250
Ma może ktoś tablelę ósemkową dla tego kodowana ?

chmooreck

  • Gość
Zamiana znaków
« Odpowiedź #9 dnia: 2011-03-28, 12:31:10 »

slawekdw

  • Gość
Zamiana znaków
« Odpowiedź #10 dnia: 2011-03-28, 16:00:33 »
No nie przesadilem, na stronie wikipedi kody 16-stkowe a nie octo (ósemkowe) ale sobie juz poradzilem, jak by ktos chciał to link do konwertera http://www.tonymarston.net/php-mysql/converter.php