Opplæring i Bash Globbing

Bash Globbing Tutorial



Bash støtter ikke native regulære uttrykk som noen andre standard programmeringsspråk. Bash -skallfunksjonen som brukes til å matche eller utvide bestemte typer mønstre kalles globbing. Globbing brukes hovedsakelig til å matche filnavn eller søke etter innhold i en fil. Globbing bruker jokertegn for å lage mønsteret. De vanligste jokertegnene som brukes til å lage globbing -mønstre er beskrevet nedenfor.

'?' brukes for å matche et enkelt tegn. Du kan bruke '?' flere ganger for å matche flere tegn.







Eksempel-1:



Anta at du vil søke i tekstfilnavnene hvis navn er 4 tegn lange og utvidelsen er .tekst . Du kan bruke globbing -mønster ved å bruke ‘ ? 'Fire ganger for å utføre denne oppgaven.



Finn ut listen over alle filer og mapper i den nåværende katalogen.





$ls-de

Kjør følgende kommando, søk i filene hvis navn er fire tegn lange og ukjente.

$ ls -l ????. txt



Eksempel-2:

Anta at du vil søke i dokumentfilene hvis navn er 8 tegn lange, de første 4 tegnene f, o, o og t og forlengelsen er dok . Kjør følgende kommando med globbing -mønster for å søke i filene.

$ls -defot ????. dok

Eksempel-3:

Anta at du vet at filnavnet er 'beste' og utvidelsen er 3 tegn lang, men kjenner ikke utvidelsen. Kjør følgende kommando ved å bruke '? 'For å søke i alle filer med navnet' test 'som har en forlengelse på tre tegn.

$ls -debeste.???

Stjerne - (*)

'*' brukes for å matche null eller flere tegn. Hvis du har mindre informasjon for å søke i en fil eller informasjon, kan du bruke den '*' i globingmønster.

Eksempel -1:

Anta at du vil søke i alle filer av 'Pl' Utvidelse. Kjør følgende kommando med '*' å gjøre den oppgaven.

$ls -de *.pl

Eksempel-2:

Anta at du bare kjenner starttegnet til filnavnet 'til' . Kjør følgende kommando ved å bruke '*' for å søke i alle filene i den nåværende katalogen hvis navn er startet med 'til' .

$ls -detil*.*

Eksempel-3:

Du kan bruke ‘*’ i bash -skript for forskjellige formål uten å søke i filer. Lag en bash -fil med navnet 'Check.sh' med følgende skript. Her, når brukeren skriver ' y ’eller‘ Y ’eller‘ ja ’eller‘ Ja ’ deretter 'Bekreftet' vil skrive ut og når typen vil skrive 'N' eller 'N' eller 'nei' eller 'nei' deretter 'Ikke bekreftet' vil skrive ut.

#!/bin/bash
kastet ut 'Vil du bekrefte?'
lesesvar
sak $ svar i
[Ååå]* ) kastet ut bekreftet.;;
[Nr]* ) kastet ut 'Ikke bekreftet.';;
*) kastet ut 'Prøv igjen.';;
esac

Kjør skriptet.

$bashsjekk.sh

Firkantet brakett - ([])

'[]' brukes for å matche tegnet fra området. Noen av de mest brukte områdedeklarasjonene er nevnt nedenfor.

Alle store bokstaver er definert av området som [: øvre:] eller [A-Z].

Alle små bokstaver er definert av området som [: lavere:] eller [a-z].

Alle numeriske siffer er definert av området som [: digit:] eller [0-9].

Alle store og små alfabeter er definert av området som [: alfa:] eller [a-zA-z].

Alle store bokstaver, små bokstaver og sifre er definert av området som [: alnum:] eller [a-zA-Z0-9]

Eksempel -1:

Kjør følgende kommando for å søke i alle filer og mapper hvis navn inneholder s eller hva eller r eller s .

$ls -de [p-s]*

Eksempel-2:

Kjør følgende kommando for å søke i alle filer og mapper hvis navn starter med et siffer fra 1 til 5.

$ls -de [1-5]*

Han mangler - (^)

Du kan bruke '^' med firkantet brakett for å definere globbing -mønster mer spesifikt. '^' kan brukes i eller utenfor firkantbraketten. ‘^’ Brukes utenfor rammen for å søke i innholdet i filen som starter med et gitt tegnområde. ‘^’ Brukes inne i firkantet parentes for å vise alt innholdet i filen ved å markere linjene som starter med et gitt tegnområde. Du kan bruke forskjellige typer globbing -mønstre for å søke etter bestemt innhold fra en fil. ‘grep’ kommandoen brukes for innholdssøk i bash. Anta at du har en tekstfil som heter 'List.txt' med følgende innhold. Test følgende eksempler for den filen.

eple
4000
Banan
700
oransje
850
Pære
9000
jackdruit

Eksempel - 1:

Kjør følgende kommando for å søke etter disse linjene fra list.txt fil som starter med P eller Q eller R. .

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

Eksempel - 2:

Kjør følgende kommando for å markere disse linjene fra list.txt fil som starter med A eller B eller C .

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

Utropstegn - (!)

Du kan bruke '!' innenfor intervallmønsteret. Det fungerer på samme måte som bruk av ‘^’ symbol utenfor områdemønsteret. Noen eksempler på bruk '!' tegn er gitt nedenfor.

Eksempel - 1:

Kjør følgende kommando for å vise disse linjene fra list.txt fil som starter med ‘P’ eller Q eller R. .

$ grep [! P-R] list.txt

Eksempel - 2:

Kjør følgende kommando for å vise disse linjene fra list.txt fil som starter med et hvilket som helst siffer fra 4 til 8 .

$ grep [! 4-8] list.txt

Dollar Sign - ($)

'$' brukes til å definere slutttegnet. Hvis du vet at du vil søke informasjon basert på siste tegn, kan du bruke det '$' i globingmønster.

Eksempel - 1:

Kjør følgende kommando for å søke etter disse linjene fra list.txt fil som ender med 'til' .

$ grep en $ list.txt

Eksempel - 2:

Kjør følgende kommando for å søke etter disse linjene fra list.txt filen som slutter med nummeret femti .

$ grep 50 $ list.txt

Krøllete brakett - ({})

'{}' kan brukes til å matche filnavn med mer enn ett globbing -mønster. Hvert mønster skilles med ‘,’ i krøllet brakett uten mellomrom. Noen eksempler er gitt nedenfor.

Eksempel - 1:

Kjør følgende kommando for å søke i filene hvis navn er 5 tegn lange og utvidelsen er 'Sh' eller de to siste tegnene i filene er 'St' og utvidelsen er 'tekst' .

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

Eksempel - 2:

Kjør følgende kommando for å slette alle filene hvis utvidelser er 'Doc' eller 'docx' .

$rm {*.doc,*.docx}

Rør– (|)

‘|’ -Tegn brukes også for å bruke mer enn én betingelse for globbing -mønster. Hvert mønster er atskilt med ‘|’ symbolet i kommandoen.

Eksempel - 1:

Kjør følgende kommando for å søke i filnavnene som begynner med tegnet 'a' og har utvidelsen 'bash' eller 'sh'.

$lstil*+(.bash|.sh)

Eksempel - 2:

Lag en bash -fil med navnet ‘Menu.bash’ og legg til følgende skript. Hvis brukertypen 1 eller S. så skrives den ut Søker etter tekst . Hvis brukertypen 2 eller R. så skrives den ut Erstatter tekst . Hvis brukertypen 3 eller D. så skrives den ut Sletter tekst . Det vil skrive ut Prøv igjen for andre innspill.

#!/bin/bash
kastet ut 'Velg et alternativ fra menyen:'
lesesvar
sak $ svar i
1 |S) kastet ut 'Søker tekst';;
2 |R) kastet ut 'Erstatter tekst';;
3 |D) kastet ut 'Sletter tekst';;
*) kastet ut 'Prøv igjen.';;
esac

Kjør skriptet.

$bashmeny. bash

KONKLUSJON

Noen av de mest brukte globbing -mønstrene forklares i denne opplæringen ved å bruke veldig enkle eksempler. Jeg håper at etter å ha praktisert eksemplene ovenfor, vil begrepet globbing være klart for deg, og du vil kunne bruke det i bash -kommandoer og skript vellykket.

For mer informasjon, sjekk denne videoen: