Bash Globbing Tutorial

Bash Globbing Tutorial
Bash støtter ikke innfødte regelmessige uttrykk som noen andre standardprogrammeringsspråk. Bash Shell -funksjonen som brukes til å matche eller utvide spesifikke 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 globbingmønstre er beskrevet nedenfor.

Spørsmålstegn - (?)

'?' brukes til å matche en hvilken som helst enkelt karakter. Du kan bruke '?' for flere ganger for å matche flere tegn.

Eksempel 1:

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

Finn ut listen over alle filer og mappe i den gjeldende katalogen.

$ ls -l

Kjør følgende kommando -søk på de filene hvis navn er fire tegn lange og ukjente.

$ ls -l ????.tekst

Eksempel-2:

Anta at du vil søke på dokumentfilene hvis navn er 8 tegn lange, første 4 tegn er f, o, o og t og utvidelse er Doc. Kjør følgende kommando med Globbing -mønster for å søke i filene.

$ ls -l fot????.Doc

Eksempel-3:

Anta at du vet at filnavnet er 'beste' og utvidelsen er 3 tegn lang, men vet ikke utvidelsen. Kjør følgende kommando ved å bruke '?'For å søke i alle filer med navnet' Test 'har noen utvidelse av tre tegn lang.

$ ls -l best.???

Asterisk - (*)

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

Eksempel -1:

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

$ ls -l *.pl

Eksempel-2:

Anta at du bare vet startkarakteren til filnavnet som er 'en'. Kjør følgende kommando ved å bruke '*' for å søke i alle filer i den gjeldende katalogen hvis navn er startet med 'en'.

$ ls -l a*.*

Eksempel-3:

Du kan bruke '*' i bash -skript for forskjellige formål uten å søke på filer. Lag en bash -fil som heter 'Sjekk.sh ' med følgende skript. Her, når brukeren vil skrive '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 trykke.

#!/bin/bash
ekko "Vil du bekrefte?""
Les svar
sak $ svar i
[Yy]*) ekko "bekreftet.";;
[Nn]*) ekko "ikke bekreftet.";;
*) ekko "Prøv igjen.";;
Esac

Kjør manuset.

$ bash check.sh

Firkantet brakett - ([])

'[]' brukes til å matche karakteren fra rekkevidden. Noen av de mest brukte rekkevidde erklæringer er nevnt nedenfor.

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

Alle små alfabeter er definert av området som, [: lavere:] eller [A-Z].

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

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

Alle store alfabeter, små alfabet og sifre er definert av området som, [: Alnum:] eller [A-ZA-Z0-9]

Eksempel -1:

Kjør følgende kommando for å søke på alle filer og mapper med navnet inneholder p eller q eller r eller s.

$ ls -l [P -S]*

Eksempel-2:

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

$ ls -l [1-5]*

Caret - (^)

Du kan bruke '^' med firkantet brakett for å definere globalmønster mer spesifikt. '^' kan brukes inne i eller utenfor firkantet brakett. '^' brukes utenfor den firkantede braketten for å søke i innholdet i filen som starter med et gitt utvalg av tegn. '^' brukes inne i den firkantede braketten for å vise alt innholdet i filen ved å fremheve linjene starter med et gitt utvalg av tegn . Du kan bruke forskjellige typer Globbing -mønstre for å søke på bestemt innhold fra en fil. 'grep' Kommando brukes til innholdssøk i bash. Anta at du har en tekstfil som heter 'liste.tekst' 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 på disse linjene fra liste.tekst fil som starter med P eller q eller r.

$ grep '^[p-r]' liste.tekst

Eksempel - 2:

Kjør følgende kommando for å fremheve disse linjene fra liste.tekst fil som starter med A eller b eller c.

$ grep '[^a-c]' liste.tekst

Utropstegn - (!)

Du kan bruke '!' Inne i rekkevidden mønster. Det fungerer samme som bruk av '^' -symbol utenfor rekkevidden mønster. Noen eksempler på bruk '!' Tegnet er gitt nedenfor.

Eksempel - 1:

Kjør følgende kommando for å vise disse linjene fra liste.tekst fil som starter med 'P' eller q eller r.

$ grep [!P-R] -liste.tekst

Eksempel - 2:

Kjør følgende kommando for å vise disse linjene fra liste.tekst fil som starter med ethvert siffer fra 4 til 8.

$ grep [!4-8] liste.tekst

Dollarskilt - ($)

'$' brukes til å definere sluttkarakteren. Hvis du vet vil søkeinformasjon basert på siste karakter, kan du bruke '$' i globbingmønster.

Eksempel - 1:

Kjør følgende kommando for å søke på disse linjene fra liste.tekst fil som ender med 'en'.

$ grep en $ liste.tekst

Eksempel - 2:

Kjør følgende kommando for å søke på disse linjene fra liste.tekst fil som slutter med nummeret 50.

$ grep 50 $ liste.tekst

Krøllete brakett - ()

'' kan brukes til å matche filnavn med mer enn ett globbingmønster. Hvert mønster er atskilt med ',' i krøllete brakett uten plass. Noen eksempler er gitt nedenfor.

Eksempel - 1:

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

$ ls -l ?????.sh,*st.tekst

Eksempel - 2:

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

$ rm *.Doc,*.docx

Rør- (|)

'|' Tegn brukes også til å bruke mer enn en tilstand på globbingmønsteret. Hvert mønster er atskilt med '|' symbol i kommandoen.

Eksempel - 1:

Kjør følgende kommando for å søke på filnavnene som starter med karakteren 'A' og har utvidelsen 'bash' eller 'sh'.

$ ls a*+(.bash |.sh)

Eksempel - 2:

Lag en bash -fil som heter 'Meny.bash ' og legg til følgende skript. Hvis brukertypen 1 eller s Da vil den skrive ut “Søker tekst”. Hvis brukertypen 2 eller r da vil den skrive ut “Erstatte tekst”. Hvis brukertypen 3 eller d Da vil den skrive ut “Slette tekst”. Det vil skrive ut "Prøv igjen" For andre innspill.

#!/bin/bash
Ekko "Velg et hvilket som helst alternativ fra menyen:"
Les svar
sak $ svar i
1 | S) ekko "søkende tekst" ;;
2 | R) ekko "erstatte tekst" ;;
3 | D) ekko "Sletting av tekst" ;;
*) ekko "Prøv igjen.";;
Esac

Kjør manuset.

$ bash -meny.bash

KONKLUSJON

Noen av de mest brukte Globbing -mønstrene er forklart i denne opplæringen ved å bruke veldig enkle eksempler. Jeg håper etter å ha øvd eksemplene ovenfor, vil globbing være tydelig for deg, og du vil kunne bruke det i bash -kommandoer og skript.

For mer info, sjekk denne videoen: