BASH: Žolíkové znaky: Porovnání verzí

Z Milan Kerslager
Přejít na: navigace, hledání
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 | &nbsp;<code>{slovo1,slovo2}</code>&nbsp;
 
| align=center | &nbsp;<code>{slovo1,slovo2}</code>&nbsp;
Řá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

Externí odkazy