Tutorial Bash Globbing

Tutorial Bash Globbing
Bash non supporta espressioni regolari native come alcuni altri linguaggi di programmazione standard. La funzione bash con shell che viene utilizzata per abbinare o espandere tipi specifici di motivi è chiamata globing. Globbing viene utilizzato principalmente per abbinare i nomi dei file o cercare contenuti in un file. Globbing usa i personaggi dei caratteri jolly per creare il modello. I personaggi jolly più comuni che vengono utilizzati per la creazione di motivi globing sono descritti di seguito.

Punto interrogativo - (?)

'?' è usato per abbinare qualsiasi singolo carattere. Puoi usare '?' per più volte per abbinare più caratteri.

Esempio 1:

Supponiamo che tu voglia cercare quei nomi di testo i cui nomi sono lunghi 4 caratteri e l'estensione è .TXT. Puoi applicare il modello globing usando '?'Quattro volte per fare questo compito.

Scopri l'elenco di tutti i file e la cartella della directory corrente.

$ ls -l

Esegui i seguenti comandi Cerca quei file i cui nomi sono lunghi e sconosciuti da quattro caratteri.

$ ls -l ????.TXT

Esempio-2:

Supponiamo che tu voglia cercare quei file di documenti i cui nomi sono lunghi 8 caratteri, i primi 4 caratteri lo sono f, o, o E T ed l'estensione è doc. Esegui il comando seguente con il modello Globbing per cercare i file.

$ ls -l piede????.doc

Esempio-3:

Supponiamo, sai che il nome file è 'migliore' ed l'estensione è lunga 3 caratteri, ma non conosco l'estensione. Esegui il seguente comando usando '?"Per cercare tutti i file con il nome 'Test' con una proroga di tre caratteri.

$ ls -l migliore.???

Asterisk - (*)

'*' è usato per abbinare zero o più caratteri. Se hai meno informazioni per cercare qualsiasi file o informazione, puoi utilizzare '*' nel modello globing.

Esempio 1:

Supponiamo che tu voglia cercare tutti i file di 'pl' estensione. Esegui il comando seguente usando '*' Per fare quell'attività.

$ ls -l *.pl

Esempio-2:

Supponiamo, conosci solo il carattere iniziale del nome file 'UN'. Esegui il comando seguente usando '*' per cercare tutti i file della directory corrente con cui sono iniziati i nomi 'UN'.

$ ls -l a*.*

Esempio-3:

È possibile applicare '*' nello script bash per vari scopi senza cercare file. Crea un file bash denominato 'controllo.sh' Con il seguente script. Qui, quando l'utente digiterà 'y 'o' y 'o' sì 'o' sì ' Poi 'confermato' stamperà e quando il tipo verrà digitato 'n' o 'n' o 'no' o 'no' Poi 'Non confermato' Stamperò.

#!/Bin/Bash
echo "Vuoi confermare?"
Leggi la risposta
Caso $ Risposta in
[Yy]*) echo "confermato.";;
[Nn]*) echo "non confermato.";;
*) echo "riprova.";;
Esac

Esegui lo script.

$ Bash Check.sh

Parentesi quadrata - ([])

'[]' è usato per abbinare il carattere dalla gamma. Alcune delle dichiarazioni della gamma per lo più usate sono menzionate di seguito.

Tutti gli alfabeti maiuscoli sono definiti dall'intervallo come, [: superiore:] o [A-Z] .

Tutti gli alfabeti minuscoli sono definiti dall'intervallo come, [: inferiore:] o [A-Z].

Tutte le cifre numeriche sono definite dall'intervallo come, [: cifre:] o [0-9].

Tutti gli alfabeti maiuscoli e inferiori sono definiti dall'intervallo come [: alfa:] o [a-za-z].

Tutti gli alfabeti maiuscole, l'alfabeto minuscolo e le cifre sono definiti dall'intervallo come, [: Alnum:] o [A-Za-Z0-9]

Esempio 1:

Esegui il comando seguente per cercare tutti i file e le cartelle il cui nome contiene P O Q O R O S.

$ ls -l [p -s]*

Esempio-2:

Esegui il comando seguente per cercare tutti i file e le cartelle il cui nome inizia con qualsiasi cifra da 1 a 5.

$ ls -l [1-5]*

Custode - (^)

Puoi usare '^' con parentesi quadrata per definire il modello globing in modo più specifico. '^' può essere usato all'interno o all'esterno della parentesi quadrata. '^' è usato al di fuori della fascia quadrata per cercare tali contenuti del file che inizia con una determinata gamma di caratteri. '^' viene utilizzato all'interno della fascia quadrata per mostrare tutto il contenuto del file evidenziando le righe iniziano con una determinata gamma di caratteri . È possibile utilizzare diversi tipi di modelli Globbing per la ricerca di contenuti particolari da un file. 'grep' Il comando viene utilizzato per la ricerca di contenuti in bash. Supponiamo che tu abbia un file di testo chiamato 'elenco.TXT' Con i seguenti contenuti. Prova i seguenti esempi per quel file.

Mela
4000
Banana
700
Arancia
850
Pera
9000
Jackdruit

Esempio 1:

Esegui il comando seguente per cercare queste righe da elenco.TXT file che inizia con P o q o r.

Elenco $ grep '^[p-r]'.TXT

Esempio - 2:

Esegui il comando seguente per evidenziare quelle righe da elenco.TXT file che inizia con A o B o C.

Elenco $ grep '[^a-c]'.TXT

Segno esclamatorio - (!)

Puoi usare '!' All'interno del modello di portata. Funziona lo stesso dell'uso del simbolo '^' al di fuori del modello di portata. Alcuni esempi di utilizzo '!' Il segno sono riportati di seguito.

Esempio 1:

Esegui il comando seguente per mostrare quelle righe da elenco.TXT file che inizia con 'P' o q o r.

$ grep [!Elenco P-R].TXT

Esempio - 2:

Esegui il comando seguente per mostrare quelle righe da elenco.TXT file che inizia con qualsiasi cifra da 4 a 8.

$ grep [!4-8] elenco.TXT

Segno del dollaro - ($)

'$' è usato per definire il carattere finale. Se sai che desideri cercare informazioni in base all'ultimo carattere, puoi usare '$' nel modello globing.

Esempio 1:

Esegui il comando seguente per cercare queste righe da elenco.TXT file che termina con 'UN'.

$ grep a $ list.TXT

Esempio - 2:

Esegui il comando seguente per cercare queste righe da elenco.TXT file che termina con il numero 50.

$ grep 50 $ elenco.TXT

Parentesi ricci - ()

'' può essere utilizzato per abbinare i nomi dei file con più di un globo. Ogni modello è separato da "," nella parentesi rictica senza spazio. Alcuni esempi sono riportati di seguito.

Esempio 1:

Esegui il seguente comando per cercare quei file i cui nomi sono lunghi 5 caratteri e l'estensione è 'sh' o gli ultimi due caratteri dei file sono 'St' E l'estensione è 'TXT'.

$ ls -l ?????.Sh,*St.TXT

Esempio - 2:

Esegui il comando seguente per eliminare tutti i file le cui estensioni sono 'doc' o 'docx'.

$ rm *.Doc,*.docx

Pipe- (|)

'|' ' Il segno viene utilizzato anche per applicare più di una condizione sul modello globing. Ogni modello è separato da '|' simbolo nel comando.

Esempio 1:

Esegui il seguente comando per cercare quei filenati che stanno iniziando con il carattere "A" e ha l'estensione "bash" o "sh".

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

Esempio - 2:

Crea un file bash denominato 'menù.Bash ' e aggiungi il seguente script. Se il tipo di utente 1 o s Quindi stamperà "Ricerca testo". Se il tipo di utente 2 o r Quindi stamperà "Sostituzione del testo". Se il tipo di utente 3 o d Quindi stamperà “Eliminazione del testo". Stampa "Riprova" Per qualsiasi altro input.

#!/Bin/Bash
Echo "Seleziona qualsiasi opzione dal menu:"
Leggi la risposta
Caso $ Risposta in
1 | S) eco "testo di ricerca" ;;
2 | R) echo "Sostituzione del testo" ;;
3 | D) eco "eliminazione del testo" ;;
*) echo "riprova.";;
Esac

Esegui lo script.

$ Bash Menu.Bash

CONCLUSIONE

Alcuni dei modelli globing più comunemente usati sono spiegati in questo tutorial usando esempi molto semplici. Spero che dopo aver praticato gli esempi di cui sopra, il concetto di Globbing ti sarà chiaro e sarai in grado di applicarlo nei comandi e negli script bash.

Per ulteriori informazioni, consultare questo video: