midnight commander nie lubi liter "ł" i "Ł"
-
- Piegowaty Guziec
- Posty: 5
- Rejestracja: 10 lip 2011, 15:08
- Płeć: Mężczyzna
- Wersja Ubuntu: 24.04
- Środowisko graficzne: Brak
- Architektura: x86_64
midnight commander nie lubi liter "ł" i "Ł"
ls * wyświetla pliki w poprawnej "polskiej" kolejności alfabetycznej, natomiast według mc ta kolejność to: A...LM....Ża....lm....żŁł
W samym mc jest ustawione użycie UTF-8, ustawienie zmiennej LANG jest poprawne.
Czy ktoś zna metodę jak poprawić to sortowanie?
W samym mc jest ustawione użycie UTF-8, ustawienie zmiennej LANG jest poprawne.
Czy ktoś zna metodę jak poprawić to sortowanie?
- emstrang
- Sędziwy Jeż
- Posty: 56
- Rejestracja: 01 mar 2022, 20:07
- Wersja Ubuntu: 24.04
- Środowisko graficzne: KDE Plasma
- Architektura: x86_64
Re: midnight commander nie lubi liter "ł" i "Ł"
Podobne sortowanie jest na Androidzie np. w przypadku listy kontaktów, ciekawe.
Dodane.
Może chodzić o ilość bajtów potrzebnych by określić znak narodowy.
A coś takiego proponuje AI:
Aby ustalić własną kolejność alfabetu w systemie Linux, należy zmodyfikować ustawienia regionalne (locale). Można to zrobić poprzez zmianę zmiennej środowiskowej LC_COLLATE. Opcjonalnie, można też utworzyć plik z definicją nowej reguły sortowania i wskazać go w zmiennej.
Kroki:
Zdefiniuj własną kolejność sortowania:
Możesz użyć narzędzia localedef do utworzenia nowej definicji ustawień regionalnych. Wymaga to znajomości specyficznych reguł sortowania.
Możesz też utworzyć plik tekstowy (np. my_collation.txt) z własną kolejnością znaków. Format pliku jest specyficzny i wymaga odpowiedniego zdefiniowania każdego znaku (zobacz dokumentację localedef).
Przykład: Plik my_collation.txt może zawierać linie:
co posortuje litery A, B, C niezależnie od wielkości liter.
Zmień zmienną środowiskową LC_COLLATE:
Aby zastosować nową kolejność sortowania dla bieżącej sesji terminala, ustaw zmienną:
(lub odpowiednią nazwę pliku z definicją). pl_PL.UTF-8 to przykład lokalizacji, możesz użyć innej, a my_collation.txt to nazwa pliku z regułami.
Aby zmiany były trwałe, dodaj tę linię do pliku konfiguracyjnego profilu (np. .bashrc, .zshrc).
Użyj sortowania z nową kolejnością:
Polecenie sort będzie teraz używać zdefiniowanej przez Ciebie kolejności sortowania.
Możesz też użyć polecenia ls -l z opcją --sort=extension (lub podobną) i odpowiednim ustawieniem LC_COLLATE, aby sortować pliki wg rozszerzeń w oparciu o własny alfabet.
Przykłady:
Sortowanie tekstu z użyciem własnej reguły.
Sortowanie plików wg rozszerzeń z własną regułą:
Stwórz plik my_collation.txt (jak wyżej).
Ustaw zmienną:
Wykonaj:
Ważne uwagi:
Skorzystaj z dokumentacji localedef w celu zapoznania się z formatem pliku konfiguracyjnego definicji sortowania.
Ustawianie zmiennych środowiskowych w plikach konfiguracyjnych profilu jest zalecane, aby zmiany były trwałe.
Sprawdź, czy używasz odpowiedniej lokalizacji (np. pl_PL.UTF-8) dla Twojego języka.
Polecenia takie jak sort i ls respektują ustawienia LC_COLLATE, więc inne programy mogą nie być tym dotknięte.
Dodane.
Może chodzić o ilość bajtów potrzebnych by określić znak narodowy.
A coś takiego proponuje AI:
Aby ustalić własną kolejność alfabetu w systemie Linux, należy zmodyfikować ustawienia regionalne (locale). Można to zrobić poprzez zmianę zmiennej środowiskowej LC_COLLATE. Opcjonalnie, można też utworzyć plik z definicją nowej reguły sortowania i wskazać go w zmiennej.
Kroki:
Zdefiniuj własną kolejność sortowania:
Możesz użyć narzędzia localedef do utworzenia nowej definicji ustawień regionalnych. Wymaga to znajomości specyficznych reguł sortowania.
Możesz też utworzyć plik tekstowy (np. my_collation.txt) z własną kolejnością znaków. Format pliku jest specyficzny i wymaga odpowiedniego zdefiniowania każdego znaku (zobacz dokumentację localedef).
Przykład: Plik my_collation.txt może zawierać linie:
Kod: Zaznacz cały
<A <a
<B <b
<C <c
Zmień zmienną środowiskową LC_COLLATE:
Aby zastosować nową kolejność sortowania dla bieżącej sesji terminala, ustaw zmienną:
Kod: Zaznacz cały
export LC_COLLATE="pl_PL.UTF-8:my_collation.txt"
Aby zmiany były trwałe, dodaj tę linię do pliku konfiguracyjnego profilu (np. .bashrc, .zshrc).
Użyj sortowania z nową kolejnością:
Polecenie sort będzie teraz używać zdefiniowanej przez Ciebie kolejności sortowania.
Kod: Zaznacz cały
sort plik_wejsciowy.txt
Przykłady:
Sortowanie tekstu z użyciem własnej reguły.
Kod: Zaznacz cały
echo -e "b\na\nc" | LC_COLLATE="pl_PL.UTF-8:my_collation.txt" sort
Stwórz plik my_collation.txt (jak wyżej).
Ustaw zmienną:
Kod: Zaznacz cały
export LC_COLLATE="pl_PL.UTF-8:my_collation.txt"
Kod: Zaznacz cały
ls -l --sort=extension
Skorzystaj z dokumentacji localedef w celu zapoznania się z formatem pliku konfiguracyjnego definicji sortowania.
Ustawianie zmiennych środowiskowych w plikach konfiguracyjnych profilu jest zalecane, aby zmiany były trwałe.
Sprawdź, czy używasz odpowiedniej lokalizacji (np. pl_PL.UTF-8) dla Twojego języka.
Polecenia takie jak sort i ls respektują ustawienia LC_COLLATE, więc inne programy mogą nie być tym dotknięte.
Ostatnio zmieniony 22 lip 2025, 19:58 przez emstrang, łącznie zmieniany 4 razy.
- kobrawerde
- Gibki Gibbon
- Posty: 2207
- Rejestracja: 10 wrz 2006, 16:00
- Płeć: Mężczyzna
- Wersja Ubuntu: 22.04
- Środowisko graficzne: Cinnamon
- Architektura: x86_64
- Kontakt:
Re: midnight commander nie lubi liter "ł" i "Ł"
może zaktualizować mc do najnowszej wersji ?
mc --version
...albo rozważyć zgłoszenie buga w projekcie mc lub poszukać patcha.
ponoć niektórych dystrybucjach (np. Arch, Debian sid) są już wersje z poprawkami. ? najnowsza wersja u mnie :
mc --version
GNU Midnight Commander 4.8.30...choć na github-ie najnowsza to 4.8.33 ...skompilowałem do vx.x.33 u mnie w systemie i jest to samo więc raczej to nie to na 99.9 % to bug
...pewnie tylko zgłoszenie błędu w projekcie mc odnośnie polskiego języka / sortowaniu np tu : https://github.com/MidnightCommander/mc/issues
mc --version
...albo rozważyć zgłoszenie buga w projekcie mc lub poszukać patcha.
ponoć niektórych dystrybucjach (np. Arch, Debian sid) są już wersje z poprawkami. ? najnowsza wersja u mnie :
mc --version
GNU Midnight Commander 4.8.30...choć na github-ie najnowsza to 4.8.33 ...skompilowałem do vx.x.33 u mnie w systemie i jest to samo więc raczej to nie to na 99.9 % to bug

Serwer: LinuxMint/Ubuntu 22.04/HWE kernel/Vsftpd/Kodi/Jellyfin/iptv-dvbt2/etc.
CPU: Intel N100 / RAM: 32GB DDR5
Storage: Lexar NM620 2TB M.2 - (x2)
Mobo: MiniPC (Topton X6C )
Laptop: Lenovo Legion 5 Pro 16ITH6H /Ram32GB/ssd500GB/ssd1TB
CPU: Intel N100 / RAM: 32GB DDR5
Storage: Lexar NM620 2TB M.2 - (x2)
Mobo: MiniPC (Topton X6C )
Laptop: Lenovo Legion 5 Pro 16ITH6H /Ram32GB/ssd500GB/ssd1TB
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 8 gości