Introduzione
A cumanda di grep Linux hè utilizzatu cum'è un metudu per u filtru di l'input.
GREP hè di Escrizzione di l'Escrizione Regulare Globale è dunque, per esse aduprà in modu efficace, avete bisognu di qualchì sapienti annantu à l'espressioni regulare.
In questu articulu, aghju da vede parechji esempi chì avete aiutu à capisce u cumandru grep.
01 di 09
Cume una ricerca per una stringe in un schedariu chì utilizà u grecu
Imagine chì avete un testu chjamatu libri cù i trisuli di u libru in i zitelli:
- Robin Hood
- Capelli Rossini
- Peter Pan
- U Castagcocetti è i trè orzeri
- Bianca bianca è i sette nattivi
- Pinnochio
- U Cat in the Hat
- I Tre Casati
- U Gruffalo
- Charlie è a Fàbrica Chocolate
Per truvà tutti i libri cù a parola "U" in u tìtulu avete aduprà a sintaxe seguente:
grep Li libri
I risultati seguenti sò tornati:
- U Castagcocetti è i trè orzeri
- Bianca bianca è i sette nattivi
- U Cat in the Hat
- I Tre Casati
- U Gruffalo
- Charlie è a Fàbrica Chocolate
In ogni casu, a parolla "A" serà puntuale.
Nota chì a ricerca hè casu sensibilita perchè s'ellu unu di i tituli detti "a" invece di "U" ùn hè micca stata riittata.
Per ignurà u casu pudete aghjunghje l'interruptione seguenti:
grep the books --ignore-case
Pudete ancu aduprà l'i cambia da seguente:
grep -i i libri
02 di 09
Ricerca per una stringe in un schedariu chì utilizanu comodini
U cumandru grep hè assai putenti. Pudete utilizà una multitùdine di tecniche di cunnessione di u patchinu per filtrà risultati.
In questu esempiu, vi cuncerte cumu per circà una stringa in un schedariu cù comodienti .
Imagine chì avete un schedariu chjamatu locu cù i nomi di u situ:
aberdeen
aberystwyth
aberlour
inverurie
inverness
Newburgh
novu vechju
novu galloway
glasgow
edinburgh
Se vulete truvà tutti i posti cun inveru in u nome, utilizate a sintaxina seguente:
in grep inte
L'asteriscenu (*) cume cumpostu per 0 o parechji. Perchè s'ellu avete un locu chjamatu inveru o un locu chjamatu inverness allora i dui volte.
Un altru comodità chì pudete aduprà hè u piriu (.). Pudete utilizà questu per fassi cù una sola lettera.
i posti grep inver.r
U cumandariu precedente truvà squadie chjamati inverurie è inverariu ma ùn trova inverieerie perchè ùn solu pò esse un crescente trà e dui r, cumu denotate da u periodu unicu.
U comodità di u periodu hè d'utilità ma pò pruduce prublemi si avete unu particulare di u testu chì cercate.
Per esempiu, guardate questa lista di nomi di duminiu
- linux.about.com
- pcsupport.about.com
- mp3.about.com
- minecraft.about.com
- androidgames.about.com
- netforbeginners.about.com
- dailylinuxuser.com
- google.co.uk
- google.au
- direct.gov.uk
Per truvà tutte l'about.com chì puderia cercà a sinaggiu cumminzioni:
grep * about * domainnames
U cumandariu putere lampassi in casu a lista cuntene u nome in seguitu:
- dailylinuxuxuser.com/about.html
Pudete, perchè, pruvate a sintaxina di seguente:
grep * about.com domainnames
Questu travagliammu ok, s'ellu ùn era un duminiu cù u nome:
aboutycom.com
Per veramente circà u termine about.com avete bisognu di scappari di u puntu cum'è:
grep * about \ .com domainnames
U cunzidu finale per vede hè questu quistione chì ghjè per cero o un caratteru.
Per esempiu:
grep? ber placenames
A cumanda di supra cumete turnàssine aberdeen, aberystwyth o even berwick.
03 di 09
Ricerca per a Strings à u principiu è a fine di linea chì utilizà u grep
U carat (^) è u simbolu di dùvule ($) permettenu di circà u patronu di u principiu è di a fine di e linii.
Imagine chì avete un schedariu chjamatu football cù i nomi di squadra di seguenti:
- Blackpool
- Liverpool
- Manchester City
- Leicester City
- Manchester United
- Newcastle United
- FC United Of Manchester
Se vulete truvà tutti i gruppi chì partianu di Manchester, puderete aduprà a sintaxe seguente:
grep ^ Cumparativi di Manchester
U cumandariu putissi turnà Manchester City e Manchester United, ma micca FC United Of Manchester.
Alternativamenti pudete truvà tutti i equipos chì finisceranu cù l'Unione cù a sintaxina di seguente:
Cunsiglii United States
U cumandimu cumanda turnaranu Manchester United è Newcastle United, ma micca FC United Of Manchester.
04 di 09
Conti u numbru di partiti Cose cumpagnie
Se ùn avete micca vultà i linii proprii chì incù un mudellu cù grep, ma puderete sce quantu quì quì sò pudete aduprà a sintaxe seguente:
grep -c patternfile inputfile
Se u patronu hà vinutu duie volte, u numaru 2 hè devueltu.
05 di 09
Truvà tutti i termini chì ùn anu micca truvatu cù grep
Imagine chì avete una lista di i nomi di u situ cù i paesi di listessa cum'è seguente:
- aberdeen scoccia
- Glasgow scocciau
- liverpool england
- colwyn bay
- londres inglaterra
Pudete avè avutu chì a colghone ùn hà nunda paese assuciatu à questu.
Per circà tutti i lochi cù un paese, pudete usà a sintaxisa seguente:
terra grep land
U risultati rimpatriate saranu tutti i lochi, cioè a culleghja di Colwyn.
Questu òviu solu opare per i posti chì finiscinu in a terra (pocu scientificu).
Pudete invertisce u selezziunale utilizendu a sintaximu seguita:
grep -v land $ places
Questu truvà tutti i posti chì ùn mancanu micca a terra.
06 di 09
Comu Locu Locu Lighjenzi In Files Utilizare grep
Imagine chì avete un input file chì hè utilizatu da una applicazione di terzu chì stetta leghje u schedariu quandu findi una linea vasa di a siguenti:
- aberdeen scoccia
- inverness scotland
- liverpool england
- colwyn bay wales
Quandu l'applicazione si aghjusta à a linea dopu à liverpool, stenderà di leghje u sensu chì a culleghja di culleghja hè sbagliata.
Pudete utilizà u grep per circà circà e linii in biancu cù a sintaxina di seguente:
grep ^ $ lugares
Sfortunatamente, questu ùn hè micca particularmente utile perchè solu torna li linii in biancu.
Pudete pussutu acquistà un cunti di u nùmeru di ciani bianchi cum'è cuntrollu per vede se u schedariu hè validu cumu seguitu:
grep -c ^ $ lugares
Ancu seriu più utile di cunnosce i numeri di linea chì anu una fila in biancu per quellu chì pudete reemplazarà. Pudete fà cù u cumandimu seguitu:
grep -n ^ $ lugares
07 di 09
Cume A Ricerca per Strings of Charselles majuscule o minuscule cù u grep
Utilizà u grep pudete stabilisce quessi filamenti in un schedariu sò tippriche majuscule cù a sintaxe seguente:
grep '[AZ]' filename
I corchete [] permettenu di definisce u listinu di caratteri. In l'esempiu di quì cuncrita un caratteru chì hè trà A è Z.
Perchè per fassi cù i caratteri di minuscusciate pudete aduprà a sintaxe seguente:
grep '[az]' filename
Sè vo vulete fà cù l'lettere cù i numerichi o un altru sìngulu ùn pudete utilizà a sintaxe seguente:
grep '[a-zA-Z]' filename
Pudete fà u listessu cù i numeri:
grep '[0-9]' filename
08 di 09
Circate per i Patterne di Ripedizione Usendu u grep
Pudete puru chjappu curtains () per circà un patru ripetutu.
Imagine chì avete un schedariu cù numeri di telefuni cumenti:
- 055-1234
- 055-4567
- 555-1545
- 444-0167
- 444-0854
- 4549-2234
- x44-1234
Sapete chì a prima parte di u numiru duveranu esse trè numeri è voi truvà e linii chì ùn sò micca currispondenu stu patronu.
Da l'esempiu previ, sapete chì [0-9] retorna tutte i numeri in un schedariu.
In questu instigatu vulemu li linii chì partenu cù trè numeri seguiti da un gufà (-). Pudete fà chì cù a sintaximu seguita:
grep "^ [0-9] [0-9] [0-9] -" numeri
Comu sapemu da exempli previ, u carat (^) significa chì a via hè stata fatta cù a struttura.
U [0-9] cercarà un nummiru entre 0 è 9. Cumu hè chjamatu trè volte chì currisponde à 3 numeri. Finalmente ci hè un guadete per denote chì un guadete averebtu successore i trè numeri.
Per utilizandu i parcheti rive, pudete fà a ricerca più chjuca di u seguitu:
grep "^ [0-9] \ {3 \} -" numeri
A slash fuxa u bracket [cesta da chì u travagliu cum'è parte di l'espressione regulare ma in esencia ciò chì dice questu hè [0-9] {3} chì significa alcunu entre 0 è 9 trè volte.
I sordi ricci sò ancu utilizati com'è:
{5,10}
{5}}
U {5,10} significa chì u caratteru chì si circà hè dumandatu esse ripetitu da almenu 5 volte, ma micca più di 10 mentre chì u {5,} significa chì u caratteru deve esse ripetitu almenu 5 volte, ma pò esse più ca quellu.
09 di 09
Utilizà a salute Da altre cumandesi Usendu grep
Questu avemu avutu guardatu à u patronu cù i schedari individuali ma grep pò usà a risurta da l'altri cumandamenti cum'è l'ingaghjamentu per cunnessu di patch.
Un gran esempiu di questu hè l'usu di u ps cumandante chì liste prucessi attivi.
Per esempiu, agisce u cumannu siguenti:
ps -ef
Tutte e le processe chì prughjettanu in u vostru sistema vi si prisentate.
Pudete utilizà u grep per circà un pruduttu furmulariu chì seguita:
ps -ef | grep firefox