Uspořádání hexadecimálních řetězců v Linuxu

Uspořádání hexadecimálních řetězců v Linuxu
« kdy: 13. 10. 2023, 11:36:10 »
V linux mint pouzijem nejaky prikaz  ktoreho vystup je 4-miestne hex-dec cisla oddelene ciarkami. Ako je vidiet, tak v prvom stvorcisli je na konci A v druhom B atd ... potom nasleduje v piatom 1, v siestom 2 atd.

Kód: [Vybrat]
030A,030B,030C,030D,0301,0302,0303,0304Ak presne ten isty prikaz pouzijem v debiane (12), tak dostanem tie iste stvorcislia, ale je to obratene, naskor su na stvrtom mieste cisla 1,2 atd .. a pismena A,B,C su az potom.
Kód: [Vybrat]
0301,0302,0303,0304,030A,030B,030C,030D
Moze to byt sposobene tym, ze linux mint mam v slovencine a debian v anglictine ?

Kód: [Vybrat]
sk_SK.UTF-8
en_US.UTF-8
« Poslední změna: 13. 10. 2023, 12:15:38 od Petr Krčmář »


z_sk

Re:usporiadanie hexadec retazcov v linuxe
« Odpověď #1 kdy: 13. 10. 2023, 12:01:37 »
Daj pred príkaz LANG=C a čo robí potom?

Re:usporiadanie hexadec retazcov v linuxe
« Odpověď #2 kdy: 13. 10. 2023, 12:15:38 »
To opravdu myslíte tu otázku vážně? Jak k tomu můžeme něco odpovědět, když jste nenapsal, o jaký příkaz se jedná, takže nemůžeme tušit, co ta data znamenají?

Re:Uspořádání hexadecimálních řetězců v Linuxu
« Odpověď #3 kdy: 13. 10. 2023, 13:12:53 »
Takze zahada vyriesena.
Prepol som v Linux mint lokalizaciu na
Kód: [Vybrat]
export LANG=en_US.UTF-8
$ echo $LANG
en_US.UTF-8
Slo mi len o to, ci to moze byt  sposobene v rozdielnych lokalizaciach en_US.UTF-8 a sk_SK.UTF-8 (v podstate mi je jedno ako to sortuje, dolezite je aby tam bolo vsetko). Tych hexadec. retazcov mam viac (ako priklad som tu pouzil 8 ).




z_sk

Re:Uspořádání hexadecimálních řetězců v Linuxu
« Odpověď #4 kdy: 13. 10. 2023, 13:43:21 »
No, radšej sa nespoliehaj na nastavenie systému, ak nemusíš.

Ak zoraďuješ cez sort, tak si pozri parametre a špecifikuj typ zoradenia.


Re:Uspořádání hexadecimálních řetězců v Linuxu
« Odpověď #5 kdy: 13. 10. 2023, 15:31:51 »
Vy jste ovšem nepsal nic o tom, že se tam něco řadí. Řazení samozřejmě závisí na locale – pravidla pro řazení v češtině jsou jiná, než pravidla pro řazení v angličtině. Např. pro to, že „č“ chceme v češtině řadit hned za „c“, tedy ještě před „d“, zatímco v angličtině je „č“ nějaký divný znak, který se bude řadit až na konec spolu s ostatním smetím.

mhepp

  • ***
  • 160
    • Zobrazit profil
    • E-mail
Re:Uspořádání hexadecimálních řetězců v Linuxu
« Odpověď #6 kdy: 13. 10. 2023, 16:22:06 »
Na tuto otázku Ti může dát spolehlivou odpověď pouze autor dané aplikace (respektive zdrojové kódy).


Re:Uspořádání hexadecimálních řetězců v Linuxu
« Odpověď #7 kdy: 14. 10. 2023, 19:47:50 »
Já za tebe ten příklad vymyslím. Narazil jsem totiž na stejný bordel v hexdump moc jsem se divil, proč mi nesouhlasí srovnání části binárních dat. Mohl
Kód: [Vybrat]
echo 012345678 | hexdump -C
00000000  30 31 32 33 34 35 36 37  38 0a                    |012345678.|
 echo 012345678 | hexdump
0000000 3130 3332 3534 3736 0a38
echo 012345678 | xxd
00000000: 3031 3233 3435 3637 380a                 012345678.
xxd -e
00000000: 33323130 37363534     0a38           012345678.
echo 012345678 |  xxd -eps | xxd -r -ps
32107654
echo 012345678 |  od -x -An
3130 3332 3534 3736 0a38
echo 012345678 |  od -hAn
3130 3332 3534 3736 0a38


největší prasárna je xxd -e a hexdump bez -C (člověk chce jenpřidat ASCII view, ale ono to zobrazuje byty správně), sice vpravo ukazuje správně 01234.., ale dump je prohozeny
PS:endian vím co znamená, jen prostě je to matoucí defaultní chování bez argumentů a pak přidání -C náhle změní i order. Samozřejmě v nápovědě vše je popsané.

Další věc je, že matně si vzpomínám, že na různých PC bych dostal různé výsledky (s defaultními argumenty) = nepřenositelnost
« Poslední změna: 14. 10. 2023, 19:50:34 od Ħαℓ₸℮ℵ ␏⫢ ⦚ »