Bash Globbing apmācība

Bash Globbing Tutorial



Bash neatbalsta vietējās regulārās izteiksmes, piemēram, dažas citas standarta programmēšanas valodas. Bash apvalka funkciju, ko izmanto, lai saskaņotu vai izvērstu konkrētu veidu modeļus, sauc par globēšanu. Globēšanu galvenokārt izmanto, lai saskaņotu failu nosaukumus vai meklētu saturu failā. Globings modeļa izveidošanai izmanto aizstājējzīmes. Tālāk ir aprakstītas visbiežāk izmantotās aizstājējzīmes.

‘?’ tiek izmantots, lai atbilstu jebkurai atsevišķai rakstzīmei. Tu vari izmantot ‘?’ vairākas reizes, lai saskaņotu vairākas rakstzīmes.







1. piemērs:



Pieņemsim, ka vēlaties meklēt tos teksta failu nosaukumus, kuru nosaukumi ir 4 rakstzīmes gari un paplašināti .txt . Jūs varat pielietot satīšanas modeli, izmantojot “ ? 'Četras reizes, lai veiktu šo uzdevumu.



Uzziniet visu pašreizējā direktorija failu un mapju sarakstu.





$ls-viņi

Palaidiet šo komandu, meklējot failus, kuru nosaukumi ir četras rakstzīmes gari un nezināmi.

$ ls -l ????. txt



2. piemērs:

Pieņemsim, ka vēlaties meklēt tos dokumentu failus, kuru nosaukumi ir 8 rakstzīmes gari, pirmās 4 rakstzīmes ir f, o, o un t un pagarinājums ir doc . Lai meklētu failus, palaidiet šo komandu ar globālo modeli.

$ls -viņipēda ????. doc

3. piemērs:

Pieņemsim, ka jūs zināt faila nosaukumu 'Labākais' un paplašinājums ir 3 rakstzīmes garš, bet nepazīst paplašinājumu. Palaidiet šādu komandu, izmantojot ‘? ”, Lai meklētu visus failus ar nosaukumu“ test ”, kuru paplašinājums ir trīs rakstzīmes garš.

$ls -viņilabākais. ???

Zvaigznīte - (*)

“*” tiek izmantots, lai atbilstu nullei vai vairāk rakstzīmēm. Ja jums ir mazāk informācijas, lai meklētu kādu failu vai informāciju, varat to izmantot “*” satriecošā zīmējumā.

Piemērs -1:

Pieņemsim, ka vēlaties meklēt visos datnes “Pl” pagarinājums. Palaidiet šādu komandu, izmantojot “*” lai veiktu šo uzdevumu.

$ls -viņi *.pl

2. piemērs:

Pieņemsim, ka jūs zināt tikai faila nosaukuma sākuma rakstzīmi 'uz' . Izpildiet šo komandu, izmantojot “*”, lai meklētu visus pašreizējā direktorija failus, kuru nosaukumi tiek sākti 'uz' .

$ls -viņiuz*.*

3. piemērs:

Jūs varat lietot “*” bash skriptā dažādiem mērķiem, nemeklējot failus. Izveidojiet bash failu ar nosaukumu 'Check.sh' ar šādu skriptu. Šeit, kad lietotājs ierakstīs “ y ”vai“ Y ”vai“ jā ”vai“ jā ” tad ‘Apstiprināts’ tiks drukāts un kad tips rakstīs “N” vai “N” vai “nē” vai “nē” tad “Nav apstiprināts” izdrukās.

#!/bin/bash
izmest ārā 'Vai vēlaties apstiprināt?'
lasītatbildi
gadījumā $ atbilde iekšā
[Yy]* ) izmest ārā 'apstiprināts.';;
[Nr]* ) izmest ārā 'Nav apstiprināts.';;
*) izmest ārā 'Mēģini vēlreiz.';;
esac

Palaidiet skriptu.

$bashpārbaudi.sh

Kvadrātiekava - ([])

“[]” tiek izmantots, lai saskaņotu raksturu no diapazona. Tālāk ir minētas dažas visbiežāk izmantotās diapazona deklarācijas.

Visus lielos burtus nosaka diapazons kā [: augšējais:] vai [A-Z].

Visus mazos alfabētus nosaka diapazons kā [: mazāks:] vai [a – z].

Visus skaitliskos ciparus diapazons definē kā [: cipars:] vai [0-9].

Visus lielos un mazos alfabētus nosaka diapazons kā [: alfa:] vai [a-zA-z].

Visus lielos burtus, mazos alfabētus un ciparus nosaka diapazons kā, [: alnum:] vai [a-zA-Z0-9]

Piemērs -1:

Izpildiet šo komandu, lai meklētu visus failus un mapes, kuru nosaukums satur lpp vai kas vai r vai s .

$ls -viņi [p-s]*

2. piemērs:

Izpildiet šo komandu, lai meklētu visus failus un mapes, kuru nosaukums sākas ar jebkuru ciparu no 1 līdz 5.

$ls -viņi [1-5]*

Viņam trūkst - (^)

Tu vari izmantot “^” ar kvadrātiekavu, lai precīzāk definētu kopšanas modeli. “^” var izmantot kvadrātiekavās vai ārpus tām. “^” Tiek izmantots ārpus kvadrātiekavas, lai meklētu to faila saturu, kas sākas ar noteiktu rakstzīmju diapazonu. “^” Tiek izmantots kvadrātiekavās, lai parādītu visu faila saturu, izceļot līnijas, kas sākas ar noteiktu rakstzīmju diapazonu. Lai meklētu konkrētu saturu no faila, varat izmantot dažādus veidus. 'satvēriens' komanda tiek izmantota satura meklēšanai bash. Pieņemsim, ka jums ir teksta fails ar nosaukumu “List.txt” ar šādu saturu. Pārbaudiet šādus šī faila piemērus.

Apple
4000
Banāns
700
apelsīns
850
Bumbieris
9000
džekdūrs

Piemērs - 1:

Izpildiet šo komandu, lai meklētu šīs rindas list.txt fails, kas sākas ar P vai Q vai R .

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

2. piemērs:

Izpildiet šo komandu, lai iezīmētu šīs līnijas list.txt fails, kas sākas ar A vai B vai C. .

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

Izsaukuma zīme - (!)

Tu vari izmantot '!' diapazona modeļa iekšpusē. Tas darbojas tāpat kā simbola “^” izmantošana ārpus diapazona modeļa. Daži izmantošanas piemēri '!' zīme ir dota zemāk.

Piemērs - 1:

Palaidiet šo komandu, lai parādītu šīs līnijas list.txt fails, kas sākas ar “P” vai Q vai R .

$ grep [! P-R] list.txt

2. piemērs:

Palaidiet šo komandu, lai parādītu šīs līnijas list.txt fails, kas sākas ar jebkuru ciparu no 4 līdz 8 .

$ grep [! 4-8] list.txt

Dolāra zīme - ($)

“$” tiek izmantots, lai definētu beigu rakstzīmi. Ja jūs zināt, ka vēlaties meklēt informāciju, pamatojoties uz pēdējo rakstzīmi, varat to izmantot “$” satriecošā zīmējumā.

Piemērs - 1:

Izpildiet šo komandu, lai meklētu šīs rindas list.txt fails, kas beidzas ar 'uz' .

$ grep un $ list.txt

2. piemērs:

Izpildiet šo komandu, lai meklētu šīs rindas list.txt failu, kas beidzas ar numuru piecdesmit .

$ grep 50 $ list.txt

Cirtainā iekava - ({})

“{}” var izmantot, lai saskaņotu failu nosaukumus ar vairākiem globējošiem modeļiem. Katrs raksts ir atdalīts ar “,” cirtainās iekavās bez atstarpes. Tālāk ir sniegti daži piemēri.

Piemērs - 1:

Izpildiet šo komandu, lai meklētu failus, kuru nosaukumi ir 5 rakstzīmes gari un paplašinājums ir 'Sh' vai pēdējās divas failu rakstzīmes ir ‘St’ un pagarinājums ir “Txt” .

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

2. piemērs:

Palaidiet šo komandu, lai izdzēstu visus failus, kuru paplašinājumi ir “Doc” vai “docx” .

$rm {*.doc,*.docx}

Caurule - (|)

Zīmi “|” izmanto arī, lai uzlikšanas modelim piemērotu vairāk nekā vienu nosacījumu. Katru modeli komandā atdala simbols “|”.

Piemērs - 1:

Izpildiet šo komandu, lai meklētu tos failu nosaukumus, kas sākas ar rakstzīmi “a” un kuriem ir paplašinājums “bash” vai “sh”.

$lsuz*+(.bash|.sh)

2. piemērs:

Izveidojiet bash failu ar nosaukumu “Menu.bash” un pievienojiet šādu skriptu. Ja lietotāja tips 1 vai S. tad tas tiks izdrukāts Teksta meklēšana . Ja lietotāja tips 2 vai R. tad tas tiks izdrukāts Teksta nomaiņa . Ja lietotāja tips 3 vai D. tad tas tiks izdrukāts Teksta dzēšana . Tas tiks izdrukāts Mēģini vēlreiz jebkurai citai ievadei.

#!/bin/bash
izmest ārā 'Izvēlnē izvēlieties jebkuru opciju:'
lasītatbildi
gadījumā $ atbilde iekšā
1 |S) izmest ārā 'Meklē tekstu';;
2 |R) izmest ārā 'Teksta aizstāšana';;
3 |D) izmest ārā 'Teksta dzēšana';;
*) izmest ārā 'Mēģini vēlreiz.';;
esac

Palaidiet skriptu.

$bashizvēlne.bash

SECINĀJUMS

Šajā apmācībā, izmantojot ļoti vienkāršus piemērus, ir izskaidroti daži no visbiežāk izmantotajiem satīšanas modeļiem. Es ceru, ka pēc iepriekš minēto piemēru praktizēšanas globēšanas jēdziens jums būs skaidrs un jūs varēsit to veiksmīgi izmantot bash komandās un skriptos.

Lai iegūtu vairāk informācijas, pārbaudiet šo videoklipu: