grep
înseamnă Căutați la nivel global expresii regulate și imprimați. Este un instrument de linie de comandă utilizat în sistemele UNIX și Linux pentru a căuta un model specificat într-un fișier sau grup de fișiere.
grep
vine cu o mulțime de opțiuni care ne permit să efectuăm diferite acțiuni legate de căutare pe fișiere. În acest articol, vom analiza modul de utilizare grep
cu opțiunile disponibile, precum și expresii regulate de bază pentru căutarea fișierelor.
Cum se folosește grep
Fără a trece nicio opțiune, grep
poate fi folosit pentru a căuta un model într-un fișier sau un grup de fișiere. Sintaxa este:
grep '<text-to-be-searched>' <file/files>
Rețineți că ghilimelele simple sau duble sunt necesare în jurul textului dacă este mai mult de un cuvânt.
Puteți utiliza, de asemenea, wildcard
pentru a selecta toate fișierele dintr-un director.
Rezultatul este apariția modelului (după linia pe care o găsește) în fișier (e). Dacă nu există nicio potrivire, nicio ieșire nu va fi tipărită pe terminal.
Hello, how are you
I am grep
Nice to meet you
De exemplu, să presupunem că avem următoarele fișiere (denumite grep.txt): grep
Următoarele
grep you grep.txt
comanda va căuta toate aparițiile cuvântului „tu”:
Hello, how are you
Nice to meet you
you
Rezultatul pentru aceasta este:
este de așteptat să aibă o culoare diferită de celălalt text pentru a identifica cu ușurință ceea ce a fost căutat. grep
Dar
vine cu mai multe opțiuni care ne ajută să obținem mai multe în timpul unei operațiuni de căutare. Să ne uităm la nouă dintre ele în timp ce le aplicăm la exemplul de mai sus. grep
Opțiuni utilizate cu -n
1.
(–line-number) – lista numerelor de linie
grep you grep.txt -n
Aceasta imprimă potrivirile pentru text împreună cu numerele de linie. Dacă te uiți la rezultatul pe care îl avem mai sus, vei observa că nu există numere de linie, ci doar meciuri.
1: Hello, how are you
3: Nice to meet you
Rezultat: -c
2.
grep you grep.txt -c
(–count) – imprimă numărul de rânduri de potriviri
2
Rezultat: Rețineți că -c
dacă a existat un alt „tu” pe prima linie, opțiune
ar imprima în continuare 2. Acest lucru se datorează faptului că este preocupat de numărul de linii în care apar meciurile, nu de numărul de meciuri. -v
3.
grep you grep.txt -v -n
(–invert-match) – imprimă liniile care nu se potrivesc cu modelul specificat
2. I am grep
Rezultat: -n
Observați că am folosit și opțiunea
? Da, puteți aplica mai multe opțiuni într-o singură comandă. -i
4.
# command 1
grep You grep.txt
# command 2
grep YoU grep.txt -i
(–ignore-case) – utilizat pentru insensibilitate la majuscule
# result 1
# no result
# result 2
Hello, how are you
Nice to meet you
Rezultate: -l
5.
# command 1
grep you grep.txt -l
# command 2
grep You grep.txt -i -l
(–files-with-matches) – tipăriți numele fișierelor care se potrivesc cu un model
# result 1
grep.txt
# result 2
# all files in the current directory that matches
# the text 'You' case insensitively
#### 6. `-w` (--word-regexp) - print matches of the whole word
Rezultate: grep
În mod implicit, grep yo grep.txt
se potrivește șirurilor care conțin modelul specificat. Aceasta înseamnă că grep yo grep.txt
va imprima aceleași rezultate ca
pentru că „yo” se găsește în tine. În mod similar, „ou”. -w
Cu opțiunea grep
,
grep yo grep.txt -w
se asigură că meciurile sunt exact același tipar ca cel specificat. Exemplu:
Rezultat:
Nici un rezultat! -o
7.
(- numai potrivire) – imprimați doar modelul potrivit grep
În mod implicit, -o
tipărește linia în care se găsește modelul potrivit. Cu opțiune
grep yo grep.txt -o
, doar modelul asortat este tipărit rând cu rând. Exemplu:
yo
Rezultat: -A
8. -B
(–after-context) și
grep grep grep.txt -A 1 -B 1
(–before-context) – imprimați liniile după și înainte (respectiv) modelul potrivit
Hello, how are you
I am grep
Nice to meet you
Rezultat: -A 1
Acest model asortat este pe linia 2. -B 1
înseamnă o linie după linia potrivită și
înseamnă o linie înainte de linia potrivită. -C
Există, de asemenea, un -A
(–context) opțiune care este egală cu -B
+ -C
. Valoarea transmisă către -A
ar fi folosit pentru -B
și
. -R
9.
(–dereference-recursive) – căutare recursivă grep
În mod implicit, -R
nu poate căuta directoare. Dacă încercați să faceți acest lucru, veți primi o eroare („Este un director”). Cu opțiune
grep you .
, căutarea fișierelor în directoare și subdirectoare devine posibilă. Exemplu:
# 'you' matches in a folders
# and files starting from the
# current directory
Rezultat:
grep
Expresii regulate pentru modele
permite, de asemenea, expresii regulate de bază pentru specificarea tiparelor. Două dintre ele sunt: ^pattern
1.
– începutul unei linii grep
Acest model înseamnă că ^
va potrivi șirurile ale căror linii încep cu șirul specificat după
grep ^I grep.txt -n
. Exemplu:
2: I
Rezultat: pattern$
2.
– sfârșitul unei linii ^
In contrast cu $
, $
specifică modele care vor fi potrivite dacă linia se termină cu șirul anterior
grep you$ grep.txt
. Exemplu:
1: Hello, how are you
3: Nice to meet you
Rezultat:
grep
Învelire
este un instrument puternic pentru căutarea fișierelor din terminal. Înțelegerea modului de utilizare vă oferă posibilitatea de a găsi cu ușurință fișiere prin terminal. man grep
Există mai multe opțiuni atașate acestui instrument. Puteți găsi cu