poniedziałek, 17 grudnia 2018

Globbing

Globbing

? zastępuje jeden znak
*zastępuje wszystkie znaki, ciągi znaków
! nie zawiera [!Ff]
[0-5] zakres
[Ff]  oznacza F lub f [Ff]
[[:alpha:]] oznacza nazwy tekstowe
[[:digit:]]  oznacza nazwy liczbowe 0 do 9
[[:upper:]] duże litery
[[:lower:]] małe litery
[[:space:]] spacje , taby , nowe linie
[[:graph:]] znaki graficzne w tym spacja
[[:print:]] znaki drukowalne w tym spacja
[[:punct:]] znaki interpunkcyjne?


Lista do  późniejszych przykładów
[dziadekw@localhost globing]$ ll
razem 0

-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 hEL
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 host.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 jakiś_plik_05
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 Jerzy_Urban.doc
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 kocioł
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 kocioł_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 kot
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 kot_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 kot_02
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 kot_03
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 koza
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 koza_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 łagieniki
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 łasica
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 łasica_07
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 most.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 mosty.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 myszka_miki
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 Pies_04
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 pinica
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 PLUTON
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 SIARKA
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 Tur
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 Tur_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 turban
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 turban_02
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 URAN

[dziadekw@localhost globing]$


? zastępuje jeden dowolny znak, można go użyć wielokrotnie by zastąpić wiele znaków
ls -l ????.txt «  wszystkie 4 znakowe pliki z rozszerzeniem .txt
  
[dziadekw@localhost globing]$ ll ????.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 host.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 most.txt

[dziadekw@localhost globing]$


ls -l Jerzy??????.doc  « wszystkie 11 znakowe pliki zaczynające się od Jerzy z rozszeżeniem  .doc

[dziadekw@localhost globing]$ ll Jerzy??????.doc
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 Jerzy_Urban.doc
[dziadekw@localhost globing]$
 

ls -l host.??? « wszystkie pliki o nazwie host i dowolnym 3 literowym rozszerzeniu

[dziadekw@localhost globing]$ ls -l host.???
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 host.txt
[dziadekw@localhost globing]$


* zastępuje wszystkie znaki.
Załóżmy, że chcemy wyszukać wszystkie pliki z rozszerzeniem .txt niezależnie od nazwy
 ls -l *.txt

[dziadekw@localhost globing]$  ls -l *.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 host.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 most.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 mosty.txt

[dziadekw@localhost globing]$
 


Załóżmy, że znamy początek nazwy pliku długość nazwy jest nie znana
ls -l k*

[dziadekw@localhost globing]$ ls -l k*
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 kocioł
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 kocioł_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 kot
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 kot_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 kot_02
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 kot_03
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 koza
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 koza_01

[dziadekw@localhost globing]$
 

Wiemy że nazwa zawiera m oraz . nie wiemy co jest po kropce

ls -l m*.*

[dziadekw@localhost globing]$ ls -l m*.*
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 most.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 mosty.txt

[dziadekw@localhost globing]$



[] zakres znaków 
ls -l *[0-3] znajdzie wszystkie pliki zawierające 0 lub 3

[dziadekw@localhost globing]$ ls -l *[0-3]
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 kocioł_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 kot_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 kot_02
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 kot_03
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 koza_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 Tur_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 turban_02

[dziadekw@localhost globing]$

 

ls -l [a-zA-Z0-9]  znajdzie wszystkie pliki zawierające zakres liter A do Z oraz a do z jak również liczby 0 do 9

! znak negacji

ll [!mkpPJtsuUTS]* spowoduje wykluczenie z listy plików których pierwsza litera nazwy to mkpPJtsuUTS

[dziadekw@localhost globing]$ ll [!mkpPJtsuUTS]*
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 hEL
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 host.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 jakiś_plik_05
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 łagieniki
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:59 łasica
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 13:56 łasica_07

[dziadekw@localhost globing]$ ll [!mkpPJtsuUTS]*



każda [] to kolejna litera w w wyrazie  więc można np zrobić tak
[!mkpPJtsuUTS][!a]

dziadekw@localhost globing]$ ll [!mkpPJtsuUTS][!a]*
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 hEL
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 14:16 host.txt

[dziadekw@localhost globing]$ 


Po dodaniu do naszego filtra !a w drugiej ramce pozbyliśmy się z pierwotnej listy nazw których pierwsza litera to  mkpPJtsuUTS druga to a.

Jako 3 litere dorzućmy s
[dziadekw@localhost globing]$ ll [!mkpPJtsuUTS][!a][!s]*
-rw-rw-r--. 1 dziadekw dziadekw 0 12-09 12:20 hEL
[dziadekw@localhost globing]$ 

[dziadekw@localhost globbing]$ ll [[:alpha:]]*
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 hEL
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 host.txt
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 jakiś_plik_05
… … …   … … … …    … … …   … … …   … … …   … … …
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 kot
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 kot_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 kot_02
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 kot_03
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 koza
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 koza_01
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 łagieniki
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 łasica
-rw-rw-r--. 1 dziaiadekw 0 12-17 15:31 turban_02
-rw-rw-r--. 1 dziadekw dziadekw 0 12-17 15:31 URAN

[dziadekw@localhost globbing]$

łączenia
 
[[:digit:]]f[:upper:]]*


Powrót do bloga

Brak komentarzy:

Prześlij komentarz