Bash Globbing Tutorial

Bash Globbing Tutorial



Bash understøtter ikke native regulære udtryk som nogle andre standard programmeringssprog. Bash -shell -funktionen, der bruges til at matche eller udvide bestemte typer mønstre, kaldes globbing. Globbing bruges hovedsageligt til at matche filnavne eller søge efter indhold i en fil. Globbing bruger jokertegn til at oprette mønsteret. De mest almindelige jokertegn, der bruges til at skabe globbing -mønstre, er beskrevet nedenfor.

'?' bruges til at matche enhver enkelt karakter. Du kan bruge '?' flere gange for at matche flere tegn.







Eksempel-1:



Antag, at du vil søge i de tekstfilnavne, hvis navne er 4 tegn lange og udvidelsen er .txt . Du kan anvende globbing -mønster ved at bruge ' ? 'Fire gange for at udføre denne opgave.



Find ud af listen over alle filer og mapper i det aktuelle bibliotek.





$ls-det

Kør følgende kommando, søg i de filer, hvis navne er fire tegn lange og ukendte.

$ ls -l ????. txt



Eksempel-2:

Antag, at du vil søge i de dokumentfiler, hvis navne er 8 tegn lange, de første 4 tegn er f, o, o og t og forlængelse er dok . Kør følgende kommando med globbing -mønster for at søge i filerne.

$ls -detfod ????. dok

Eksempel-3:

Antag, at du ved, at filnavnet er 'bedst' og udvidelse er 3 tegn lang, men kender ikke udvidelsen. Kør følgende kommando ved hjælp af ’? 'For at søge i alle filer med navnet' test 'med en forlængelse på tre tegn.

$ls -detbedst.???

Stjerne - (*)

'*' bruges til at matche nul eller flere tegn. Hvis du har færre oplysninger til at søge i en fil eller oplysninger, kan du bruge det '*' i globingmønster.

Eksempel -1:

Antag, at du vil søge i alle filer af 'Pl' udvidelse. Kør følgende kommando ved hjælp af '*' at udføre den opgave.

$ls -det *.pl

Eksempel-2:

Antag, at du kun kender starttegnet i filnavnet, som er 'til' . Kør følgende kommando ved hjælp af '*' for at søge i alle filer i det aktuelle bibliotek, hvis navne er startet med 'til' .

$ls -dettil*.*

Eksempel-3:

Du kan anvende ‘*’ i bash -script til forskellige formål uden at søge i filer. Opret en bash -fil med navnet 'Check.sh' med følgende script. Her, når brugeren vil skrive ' y 'eller' Y 'eller' ja 'eller' Ja ' derefter 'Bekræftet' udskrives, og hvornår typen skriver 'N' eller 'N' eller 'nej' eller 'nej' derefter 'Ikke bekræftet' vil udskrive.

#!/bin/bash
smed ud 'Vil du bekræfte?'
Læssvar
sag $ svar i
[Åh]* ) smed ud 'bekræftet.';;
[Nr]* ) smed ud 'Ikke bekræftet.';;
*) smed ud 'Prøv igen.';;
esac

Kør scriptet.

$bashcheck.sh

Firkantet beslag - ([])

'[]' bruges til at matche karakteren fra området. Nogle af de mest anvendte intervaldeklarationer er nævnt nedenfor.

Alle store bogstaver er defineret af intervallet som [: øvre:] eller [A-Z].

Alle små alfabeter defineres af intervallet som [: lavere:] eller [a-z].

Alle numeriske cifre defineres af området som [: ciffer:] eller [0-9].

Alle store og små alfabeter defineres af intervallet som [: alfa:] eller [a-zA-z].

Alle store bogstaver, små bogstaver og cifre defineres af intervallet som [: alnum:] eller [a-zA-Z0-9]

Eksempel -1:

Kør følgende kommando for at søge i alle filer og mapper, hvis navn indeholder s eller hvad eller r eller s .

$ls -det [p-s]*

Eksempel-2:

Kør følgende kommando for at søge i alle filer og mapper, hvis navn starter med et ciffer fra 1 til 5.

$ls -det [1-5]*

Han mangler - (^)

Du kan bruge '^' med firkantet beslag til at definere globbing -mønster mere specifikt. '^' kan bruges inden for eller uden for firkantbeslaget. '^' Bruges uden for firkantet parentes til at søge i det indhold af filen, der starter med et givet tegnområde. '^' Bruges inde i firkantet parentes til at vise alt indhold i filen ved at fremhæve linjerne, der starter med et givet tegnområde. Du kan bruge forskellige typer globbing -mønstre til at søge efter bestemt indhold fra en fil. 'greb' kommandoen bruges til indholdssøgning i bash. Antag, at du har en tekstfil med navnet 'List.txt' med følgende indhold. Test følgende eksempler for den fil.

Æble
4000
Banan
700
orange
850
Pære
9000
jackdruit

Eksempel - 1:

Kør følgende kommando for at søge i disse linjer fra list.txt fil der starter med P eller Q eller R .

$ grep '^[P-R]' list.txt

Eksempel - 2:

Kør følgende kommando for at markere disse linjer fra list.txt fil der starter med A eller B eller C .

$ grep '[^A-C]' list.txt

Udråbstegn - (!)

Du kan bruge '!' inde i intervallet. Det fungerer på samme måde som brugen af ​​'^' symbol uden for områdemønsteret. Nogle eksempler på brug '!' tegn er angivet nedenfor.

Eksempel - 1:

Kør følgende kommando for at vise disse linjer fra list.txt fil der starter med 'P' eller Q eller R .

$ grep [! P-R] list.txt

Eksempel - 2:

Kør følgende kommando for at vise disse linjer fra list.txt fil, der starter med et hvilket som helst ciffer fra 4 til 8 .

$ grep [! 4-8] list.txt

Dollar Sign - ($)

'$' bruges til at definere sluttegnet. Hvis du ved, at du vil søge efter oplysninger baseret på sidste tegn, kan du bruge det '$' i globingmønster.

Eksempel - 1:

Kør følgende kommando for at søge i disse linjer fra list.txt fil, der slutter med 'til' .

$ grep en $ list.txt

Eksempel - 2:

Kør følgende kommando for at søge i disse linjer fra list.txt fil, der slutter med nummeret halvtreds .

$ grep 50 $ list.txt

Krøllet beslag - ({})

'{}' kan bruges til at matche filnavne med mere end et globbing -mønster. Hvert mønster adskilles med ‘,’ i krøllet beslag uden plads. Nogle eksempler er givet nedenfor.

Eksempel - 1:

Kør følgende kommando for at søge i de filer, hvis navne er 5 tegn lange og udvidelsen er 'Sh' eller de to sidste tegn i filerne er 'St' og udvidelsen er 'Txt' .

$ ls -l {?????. sh,*st.txt}

Eksempel - 2:

Kør følgende kommando for at slette alle filer, hvis udvidelser er 'Doc' eller 'docx' .

$rm {*.doc,*.docx}

Rør– (|)

‘|’ Tegn bruges også til at anvende mere end én betingelse for globbingmønster. Hvert mønster er adskilt af ‘|’ symbolet i kommandoen.

Eksempel - 1:

Kør følgende kommando for at søge i de filnavne, der starter med tegnet 'a' og har udvidelsen 'bash' eller 'sh'.

$lstil*+(.bash|.sh)

Eksempel - 2:

Opret en bash -fil med navnet 'Menu.bash' og tilføj følgende script. Hvis bruger typen 1 eller S. så udskrives det Søger efter tekst . Hvis bruger typen 2 eller R. så udskrives det Udskiftning af tekst . Hvis bruger typen 3 eller D. så udskrives det Sletter tekst . Det vil udskrive Prøv igen for ethvert andet input.

#!/bin/bash
smed ud 'Vælg en valgmulighed i menuen:'
Læssvar
sag $ svar i
1 |S) smed ud 'Søgning efter tekst';;
2 |R) smed ud 'Udskiftning af tekst';;
3 |D) smed ud 'Sletter tekst';;
*) smed ud 'Prøv igen.';;
esac

Kør scriptet.

$bashmenu.bash

KONKLUSION

Nogle af de mest almindeligt anvendte globbing -mønstre forklares i denne vejledning ved hjælp af meget enkle eksempler. Jeg håber, at efter at have øvet ovenstående eksempler, vil begrebet globbing være klart for dig, og du vil kunne anvende det i bash -kommandoer og scripts med succes.

For mere information, tjek denne video: