BASH: Žolíkové znaky: Porovnání verzí
Z Milan Kerslager
m (+kat) |
(Doplnění) |
||
Řádka 13: | Řádka 13: | ||
| align=center | <code>[abc]</code> | | align=center | <code>[abc]</code> | ||
| Jeden z uvedených znaků (zde a, b nebo c) | | Jeden z uvedených znaků (zde a, b nebo c) | ||
+ | |- | ||
+ | | align=center | <code>[a-e]</code> | ||
+ | | Jeden z rozsahu znaků (zde a až e), moderní shelly respektují národní znaky (locale) | ||
|- | |- | ||
| align=center | <code>[^abc]</code> | | align=center | <code>[^abc]</code> | ||
− | | Žádný z uvedených znaků (cokoliv kromě a, b nebo c) | + | | Žádný z uvedených znaků (cokoliv kromě a, b nebo c), lze též využít rozsah |
|- | |- | ||
| align=center | <code>{slovo1,slovo2}</code> | | align=center | <code>{slovo1,slovo2}</code> | ||
Řádka 24: | Řádka 27: | ||
ls /bin/*sh # vypíše z adresáře ''/bin'' vše, co končí na ''sh'' | ls /bin/*sh # vypíše z adresáře ''/bin'' vše, co končí na ''sh'' | ||
ls /bin/[bcd]* # vypíše z adresáře ''/bin'' vše začínající na ''b'', ''c'' nebo ''d'' | ls /bin/[bcd]* # vypíše z adresáře ''/bin'' vše začínající na ''b'', ''c'' nebo ''d'' | ||
− | ls -d /etc/[ab]* # vypíše z adresáře ''/etc'' vše začínající na ''a'' nebo ''b | + | ls /bin/[a-d]* # vypíše z adresáře ''/bin'' vše začínající na ''a'', ''b'', ''c'' nebo ''d'' |
+ | ls -d /etc/[ab]* # vypíše z adresáře ''/etc'' vše začínající na ''a'' nebo ''b' | ||
ls /bin/[^abc]* # vypíše z adresáře ''/bin'' vše, co nezačíná na ''a'', ''b'' nebo ''c'' | ls /bin/[^abc]* # vypíše z adresáře ''/bin'' vše, co nezačíná na ''a'', ''b'' nebo ''c'' | ||
ls *{txt,doc} # vypíše v aktuálním adresáři vše končící na ''.txt'' nebo ''.doc'' | ls *{txt,doc} # vypíše v aktuálním adresáři vše končící na ''.txt'' nebo ''.doc'' |
Verze z 25. 11. 2009, 10:55
Žolíkové znaky slouží k tomu, aby nebylo nutné uvádět všechny parametry příkazů explicitně, ale bylo možné použít obecné zadání. Lze například pracovat se všemi soubory s příponou txt
nebo se všemi, které vyhovují jiným podmínkám (začínají na určité znaky, obsahují slovo atd.).
Konstrukce Funkce *
Jakékoliv znaky (i žádný znak) ?
Jakýkoliv právě jeden znak [abc]
Jeden z uvedených znaků (zde a, b nebo c) [a-e]
Jeden z rozsahu znaků (zde a až e), moderní shelly respektují národní znaky (locale) [^abc]
Žádný z uvedených znaků (cokoliv kromě a, b nebo c), lze též využít rozsah {slovo1,slovo2}
Jedno z uvedených slov (zde slovo1 nebo slovo2)
Příklady
ls /bin/*sh # vypíše z adresáře /bin vše, co končí na sh ls /bin/[bcd]* # vypíše z adresáře /bin vše začínající na b, c nebo d ls /bin/[a-d]* # vypíše z adresáře /bin vše začínající na a, b, c nebo d ls -d /etc/[ab]* # vypíše z adresáře /etc vše začínající na a nebo b' ls /bin/[^abc]* # vypíše z adresáře /bin vše, co nezačíná na a, b nebo c ls *{txt,doc} # vypíše v aktuálním adresáři vše končící na .txt nebo .doc ls /{bin,sbin}/c* # vypíše z adresářů /bin a /sbin vše, co začíná na c ls /{,s}bin/c* # vypíše z adresářů /bin a /sbin vše, co začíná na c