[+] Bash, RegExpr i polecenie grep do okre

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
sector
Beginner
Posty: 113
Rejestracja: 28 kwietnia 2010, 10:48
Lokalizacja: Kraków

[+] Bash, RegExpr i polecenie grep do określenia warunku

Post autor: sector »

Mam problem. Robię instalator do programu i potrzebuje zrobić w miarę uniwersalny plik setup.sh. Szukałem dziś chwile, ale nie mogę sobie poradzić z jedna rzeczą.

Chodzi o to, że przed instalacją sprawdzam poleceniem

Kod: Zaznacz cały

locale -a

czcionki systemowe. O ile w Debianie jest pl_PL.utf8 to np. w Mandrivie jest to pl_PL.UTF-8.

Mógłbym zrobić dwa warunki (if), jeden z UTF-8, a drugi na UTF8, jednak bardziej profesjonalnie i lepiej dla oka wygląda zastosowanie RegExpr. O ile z małymi i dużymi literami nie mam problemu to nie wiem jak zrobić to żeby, warunek akceptował "-". Chodzi mi o znak, który zastąpi 1 znak w Linuksie. Coś jak znak zapytania, który w Windows zastępuje 1 dowolny znak.

Zrobiłem tak:

Kod: Zaznacz cały

if locale -a | grep pl_PL.[u|U][t|T][f|F]8
A jak zrobić, żeby warunek również akceptował pl_PL.UTF-8? Mam nadzieje, że w miarę dobrze to wytłumaczyłem.
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

A może by tak?

Kod: Zaznacz cały

grep -i 'pl_pl\.utf-\{0,1\}8'
fnmirk
Senior Member
Posty: 8321
Rejestracja: 03 grudnia 2007, 06:37

Post autor: fnmirk »

Według mnie to polecenie:

Kod: Zaznacz cały

locale -a
ma niewiele wspólnego z fontami (czcionkami) zainstalowanymi w systemie. Możesz wybrać określone kodowanie i je ustawić jako systemowe bez zainstalowanych czcionek - efektem tego jest wyświetlanie tzw. ,,krzaczków''.
Awatar użytkownika
sector
Beginner
Posty: 113
Rejestracja: 28 kwietnia 2010, 10:48
Lokalizacja: Kraków

Post autor: sector »

lessmian2 pisze:A może by tak?

Kod: Zaznacz cały

grep -i 'pl_pl\.utf-\{0,1\}8'

A czy ten warunek zaakceptuje pl_pl.UTF-8 jak i pl.pl.UTF8? Niestety nie mogę teraz tego sprawdzić bo nie mam teraz dostępu do VMWare.

Edycja:
Sprawdziłem i działa. Wielkie dzięki!

Czy mógłbyś mi tylko napisać czemu w ten sposób a nie tak jak ja robiłem?
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Bo Twój sposób wydawał mi się dziwny? ;) Po co sprawdzać z osobna czy znak jest "duży" czy "mały" skoro można to w tym przypadku z czystym sumieniem zignorować? Wszak ważna jest treść a nie forma zapisu, a wyrażenie wygląda o niebo lepiej ;) Można by też zamienić fragment

Kod: Zaznacz cały

-\{0,1\}
(zero lub jedno wystąpienie znaku '-') na (zero lub więcej), ale ja lubię mieć dość dokładne wzorce ile i jakich znaków ma się pojawić w określonym miejscu. Ale to tylko moje widzi mi się i lekkie skrzywienie z perla ;)
Awatar użytkownika
sector
Beginner
Posty: 113
Rejestracja: 28 kwietnia 2010, 10:48
Lokalizacja: Kraków

Post autor: sector »

Dzięki za pomoc! Poćwicze sobie podobne przykłady.
ODPOWIEDZ