Grep este un utilitar unic și foarte puternic Linux / UNIX care vă permite să căutați un șir specific într-unul sau mai multe fișiere dintr-un sistem de operare GNU / Linux. Acesta este un software de linie de comandă care a fost proiectat de la sol pentru a scoate numai linii de potrivire. Comanda Grep este compusă din selecția și interpretarea regexp, controlul de ieșire, controlul contextului și diverse opțiuni.
Pentru a utiliza Grep din linia de comandă, va trebui să tastați & grep --help & rsquo; Comandă într-un emulator de terminale sau direct în consola Linux, care va scoate toate opțiunile disponibile, precum și diverse exemple privind modul de utilizare a instrumentului pentru a găsi un anumit model într-un fișier. Exemplul de utilizare standard dat de comanda menționată mai sus este & ldquo; grep [OPTION] ... PATTERN [FILE] ... & rdquo;
Vreau să văd un exemplu!
Cel mai simplu exemplu este grep -i 'hello world' menu.h main.c & rdquo ;, unde & ldquo; -i & rdquo; Este [OPTION] & hello world & rdquo; Este meniul [PATTERN] și "meniu"; & rdquo; Și & quot; meniu & quot; & rdquo; Sunt [FILE]. Această comandă simplă este folosită pentru a căuta "lumea salutului" & rdquo; Model în fiecare fișier dat. Rețineți, totuși, că [PATTERN] este, în mod implicit, o expresie regulată de bază (BRE).
Rețineți că atunci când utilizați "-" Simbol pentru șirul [FILE] din exemplul de mai sus, Grep va citi în mod automat intrarea standard. În plus, dacă nu este specificat deloc [FILE], acesta va citi directorul curent.
Se rulează pe cutia mea Linux?
Grep este considerat de către dezvoltatorii de Linux ca un utilitar UNIX esențial, ceea ce înseamnă că este instalat implicit în aproape toate sistemele de operare GNU / Linux. Dacă, dintr-un motiv ciudat, căsuța dvs. Linux nu are instalat instrumentul grep, îl veți putea instala cu ușurință din depozitele de programe implicite ale distribuției. Ambele arhitecturi pe 64 de biți și pe 32 de biți sunt acceptate în acest moment.
Ce este nou în această ediție:
- Îmbunătățiri:
- Performanța a fost mult îmbunătățită pentru căutarea fișierelor care conțin găuri, pe platforme în care steagul SEEK_DATA al lseek funcționează eficient.
- Performanța sa îmbunătățit pentru respingerea datelor care nu se pot potrivi chiar cu prima parte a unui model netrivial.
- Performanța sa îmbunătățit pentru șirurile foarte lungi în modele.
- Dacă un fișier conține date codificate incorect pentru localizarea curentă și acest lucru este descoperit înainte ca oricare din conținutul fișierului să fie trimis, grep tratează acum fișierul ca fiind binar.
- grep -P nu mai raportează o eroare și iese atunci când primește date nevalide UTF-8. În schimb, consideră că datele nu corespund.
- Remedierea erorilor:
- grep nu mai prezintă șabloane care conțin w sau W în locații multibyte.
- Grep nu va conta la noi linii interne atunci când operează în localități non-UTF8 multibyte, conducând-o la imprimarea potențialelor linii care nu se potrivesc. De exemplu, comanda "seq 10" Env LC_ALL = zh_CN src / grep -n .. " Va imprima acest lucru: 1: 1 2 3 4 5 6 7 8 9 10 ceea ce înseamnă că meciul "10" A fost pe linia 1. [bug introdus în grep-2.19]
- grep -F -x -o nu mai imprimă o nouă linie nouă pentru fiecare meci. [Bug introdus în grep-2.19]
- grep într-o locație non-UTF8 multibyte ar putea să se potrivească eronat în mijlocul unui caracter multibyte atunci când folosește o alternativă ancorată '^' într-un model, ducând-o la imprimarea liniilor care nu corespund. [Bug prezent de la "începutul"]
- grep -FY nu mai nu se potrivește în locații non-UTF8 multibyte, cum ar fi Shift-JIS, atunci când intrarea conține un caracter de 2 octeți, XY, urmat de modelul de căutare cu un singur octet, Y. grep găsește primul , Potrivirea "Y" a mijlocului de multibyte și apoi avansarea greșită a unui indicator intern un singur octet prea departe, săriți peste ținta "Y". După aceea. [Bug introdus în grep-2.19]
- grep -E respinsa de neegalat "), în loc să o trateze ca ')'. [Bug prezent de la "începutul"]
- În NetBSD, grep -r nu mai raportează "Tip sau format de fișier necorespunzător" Când refuză să urmeze o legătură simbolică. [Bug introdus în grep-2.12]
- Schimbări de comportament:
- Variabila de mediu GREP_OPTIONS este acum învechită, iar grep avertizează acum dacă este utilizată. Utilizați în schimb un alias sau un script.
- În localizări cu codificări de caractere multi-bate, altele decât UTF-8, grep -P raportează acum o eroare și iese din loc de a fi prost.
- Atunci când căutați date binare, grep acum poate trata octeți non-text ca terminatori de linie. Acest lucru poate spori semnificativ performanța.
- grep -z nu mai tratează automat octetul ' 200' ca date binare.
Ce este nou în versiunea 3.0:
- Îmbunătățiri:
- Performanța a fost mult îmbunătățită pentru căutarea fișierelor care conțin găuri, pe platforme în care steagul SEEK_DATA al lseek funcționează eficient.
- Performanța sa îmbunătățit pentru respingerea datelor care nu se pot potrivi chiar cu prima parte a unui model netrivial.
- Performanța sa îmbunătățit pentru șirurile foarte lungi în modele.
- Dacă un fișier conține date codificate incorect pentru localizarea curentă și acest lucru este descoperit înainte ca oricare din conținutul fișierului să fie trimis, grep tratează acum fișierul ca fiind binar.
- grep -P nu mai raportează o eroare și iese atunci când primește date nevalide UTF-8. În schimb, consideră că datele nu corespund.
- Remedierea erorilor:
- grep nu mai prezintă șabloane care conțin w sau W în locații multibyte.
- Grep nu va conta la noi linii interne atunci când operează în localități non-UTF8 multibyte, conducând-o la imprimarea potențialelor linii care nu se potrivesc. De exemplu, comanda "seq 10" Env LC_ALL = zh_CN src / grep -n .. " Va imprima acest lucru: 1: 1 2 3 4 5 6 7 8 9 10 ceea ce înseamnă că meciul "10" A fost pe linia 1. [bug introdus în grep-2.19]
- grep -F -x -o nu mai imprimă o nouă linie nouă pentru fiecare meci. [Bug introdus în grep-2.19]
- grep într-o locație non-UTF8 multibyte ar putea să se potrivească eronat în mijlocul unui caracter multibyte atunci când folosește o alternativă ancorată '^' într-un model, ducând-o la imprimarea liniilor care nu corespund. [Bug prezent de la "începutul"]
- grep -FY nu mai nu se potrivește în locații non-UTF8 multibyte, cum ar fi Shift-JIS, atunci când intrarea conține un caracter de 2 octeți, XY, urmat de modelul de căutare cu un singur octet, Y. grep găsește primul , Potrivirea "Y" a mijlocului de multibyte și apoi avansarea greșită a unui indicator intern un singur octet prea departe, săriți peste ținta "Y". După aceea. [Bug introdus în grep-2.19]
- grep -E respinsa de neegalat "), în loc să o trateze ca ')'. [Bug prezent de la "începutul"]
- În NetBSD, grep -r nu mai raportează "Tip sau format de fișier necorespunzător" Când refuză să urmeze o legătură simbolică. [Bug introdus în grep-2.12]
- Schimbări de comportament:
- Variabila de mediu GREP_OPTIONS este acum învechită, iar grep avertizează acum dacă este utilizată. Utilizați în schimb un alias sau un script.
- În localizări cu codificări de caractere multi-bate, altele decât UTF-8, grep -P raportează acum o eroare și iese din loc de a fi prost.
- Atunci când căutați date binare, grep acum poate trata octeți non-text ca terminatori de linie. Acest lucru poate spori semnificativ performanța.
- grep -z nu mai tratează automat octetul ' 200' ca date binare.
Ce este nou în versiunea 2.28:
- Îmbunătățiri:
- Performanța a fost mult îmbunătățită pentru căutarea fișierelor care conțin găuri, pe platforme în care steagul SEEK_DATA al lseek funcționează eficient.
- Performanța sa îmbunătățit pentru respingerea datelor care nu se pot potrivi chiar cu prima parte a unui model netrivial.
- Performanța sa îmbunătățit pentru șirurile foarte lungi în modele.
- Dacă un fișier conține date codificate incorect pentru localizarea curentă și acest lucru este descoperit înainte ca oricare din conținutul fișierului să fie trimis, grep tratează acum fișierul ca fiind binar.
- grep -P nu mai raportează o eroare și iese atunci când primește date nevalide UTF-8. În schimb, consideră că datele nu corespund.
- Remedierea erorilor:
- grep nu mai prezintă șabloane care conțin w sau W în locații multibyte.
- Grep nu va conta la noi linii interne atunci când operează în localități non-UTF8 multibyte, conducând-o la imprimarea potențialelor linii care nu se potrivesc. De exemplu, comanda "seq 10" Env LC_ALL = zh_CN src / grep -n .. " Va imprima acest lucru: 1: 1 2 3 4 5 6 7 8 9 10 ceea ce înseamnă că meciul "10" A fost pe linia 1. [bug introdus în grep-2.19]
- grep -F -x -o nu mai imprimă o nouă linie nouă pentru fiecare meci. [Bug introdus în grep-2.19]
- grep într-o locație non-UTF8 multibyte ar putea să se potrivească eronat în mijlocul unui caracter multibyte atunci când folosește o alternativă ancorată '^' într-un model, ducând-o la imprimarea liniilor care nu corespund. [Bug prezent de la "începutul"]
- grep -FY nu mai nu se potrivește în locații non-UTF8 multibyte, cum ar fi Shift-JIS, atunci când intrarea conține un caracter de 2 octeți, XY, urmat de modelul de căutare cu un singur octet, Y. grep găsește primul , Potrivirea "Y" a mijlocului de multibyte și apoi avansarea greșită a unui indicator intern un singur octet prea departe, săriți peste ținta "Y". După aceea. [Bug introdus în grep-2.19]
- grep -E respinsa de neegalat "), în loc să o trateze ca ')'. [Bug prezent de la "începutul"]
- În NetBSD, grep -r nu mai raportează "Tip sau format de fișier necorespunzător" Când refuză să urmeze o legătură simbolică. [Bug introdus în grep-2.12]
- Schimbări de comportament:
- Variabila de mediu GREP_OPTIONS este acum învechită, iar grep avertizează acum dacă este utilizată. Utilizați în schimb un alias sau un script.
- În localizări cu codificări de caractere multi-bate, altele decât UTF-8, grep -P raportează acum o eroare și iese din loc de a fi prost.
- Atunci când căutați date binare, grep acum poate trata octeți non-text ca terminatori de linie. Acest lucru poate spori semnificativ performanța.
- grep -z nu mai tratează automat octetul ' 200' ca date binare.
Ce este nou în versiunea 2.27:
- Îmbunătățiri:
- Performanța a fost mult îmbunătățită pentru căutarea fișierelor care conțin găuri, pe platforme în care steagul SEEK_DATA al lseek funcționează eficient.
- Performanța sa îmbunătățit pentru respingerea datelor care nu se pot potrivi chiar cu prima parte a unui model netrivial.
- Performanța sa îmbunătățit pentru șirurile foarte lungi în modele.
- Dacă un fișier conține date codificate incorect pentru localizarea curentă și acest lucru este descoperit înainte ca oricare din conținutul fișierului să fie trimis, grep tratează acum fișierul ca fiind binar.
- grep -P nu mai raportează o eroare și iese atunci când primește date nevalide UTF-8. În schimb, consideră că datele nu corespund.
- Remedierea erorilor:
- grep nu mai prezintă șabloane care conțin w sau W în locații multibyte.
- Grep nu va conta la noi linii interne atunci când operează în localități non-UTF8 multibyte, conducând-o la imprimarea potențialelor linii care nu se potrivesc. De exemplu, comanda "seq 10" Env LC_ALL = zh_CN src / grep -n .. " Va imprima acest lucru: 1: 1 2 3 4 5 6 7 8 9 10 ceea ce înseamnă că meciul "10" A fost pe linia 1. [bug introdus în grep-2.19]
- grep -F -x -o nu mai imprimă o nouă linie nouă pentru fiecare meci. [Bug introdus în grep-2.19]
- grep într-o locație non-UTF8 multibyte ar putea să se potrivească eronat în mijlocul unui caracter multibyte atunci când folosește o alternativă ancorată '^' într-un model, ducând-o la imprimarea liniilor care nu corespund. [Bug prezent de la "începutul"]
- grep -FY nu se mai potrivește în locații non-UTF8 multibyte, cum ar fi Shift-JIS, atunci când intrarea conține un caracter de 2 octeți, XY, urmat de modelul de căutare cu un singur octet, Y. grep găsește primul , Potrivirea "Y" a mijlocului de multibyte și apoi avansarea greșită a unui indicator intern într-un octet prea departe, sărind peste ținta "Y". După aceea. [Bug introdus în grep-2.19]
- grep -E respinsa de neegalat "), în loc să o trateze ca ')'. [Bug prezent de la "începutul"]
- În NetBSD, grep -r nu mai raportează "Tip sau format de fișier necorespunzător" Când refuză să urmeze o legătură simbolică. [Bug introdus în grep-2.12]
- Schimbări de comportament:
- Variabila de mediu GREP_OPTIONS este acum învechită, iar grep avertizează acum dacă este utilizată. În schimb, utilizați un alias sau un script.
- În localizări cu codificări de caractere multi-bate, altele decât UTF-8, grep -P raportează o eroare și iese din loc de a fi greșit.
- Atunci când căutați date binare, grep acum poate trata octeți non-text ca terminatori de linie. Acest lucru poate spori semnificativ performanța.
- grep -z nu mai tratează automat octetul ' 200' ca date binare.
Ce este nou în versiunea 2.26:
- Îmbunătățiri:
- Performanța a fost mult îmbunătățită pentru căutarea fișierelor care conțin găuri, pe platforme în care steagul SEEK_DATA al lseek funcționează eficient.
- Performanța sa îmbunătățit pentru respingerea datelor care nu se pot potrivi chiar cu prima parte a unui model netrivial.
- Performanța sa îmbunătățit pentru șirurile foarte lungi în modele.
- Dacă un fișier conține date codificate incorect pentru localizarea curentă și acest lucru este descoperit înainte ca oricare din conținutul fișierului să fie trimis, grep tratează acum fișierul ca fiind binar.
- grep -P nu mai raportează o eroare și iese atunci când primește date nevalide UTF-8. În schimb, consideră că datele nu corespund.
- Remedierea erorilor:
- grep nu mai prezintă șabloane care conțin w sau W în locații multibyte.
- Grep nu va conta la noi linii interne atunci când operează în localități non-UTF8 multibyte, conducând-o la imprimarea potențialelor linii care nu se potrivesc. De exemplu, comanda "seq 10" Env LC_ALL = zh_CN src / grep -n .. " Va imprima acest lucru: 1: 1 2 3 4 5 6 7 8 9 10 ceea ce înseamnă că meciul "10" A fost pe linia 1. [bug introdus în grep-2.19]
- grep -F -x -o nu mai imprimă o nouă linie nouă pentru fiecare meci. [Bug introdus în grep-2.19]
- grep într-o locație non-UTF8 multibyte ar putea să se potrivească eronat în mijlocul unui caracter multibyte atunci când folosește o alternativă ancorată '^' într-un model, ducând-o la imprimarea liniilor care nu corespund. [Bug prezent de la "începutul"]
- grep -FY nu mai nu se potrivește în locații non-UTF8 multibyte, cum ar fi Shift-JIS, atunci când intrarea conține un caracter de 2 octeți, XY, urmat de modelul de căutare cu un singur octet, Y. grep găsește primul , Potrivirea "Y" a mijlocului de multibyte și apoi avansarea greșită a unui indicator intern un singur octet prea departe, săriți peste ținta "Y". După aceea. [Bug introdus în grep-2.19]
- grep -E respinsa de neegalat "), în loc să o trateze ca ')'. [Bug prezent de la "începutul"]
- În NetBSD, grep -r nu mai raportează "Tip sau format de fișier necorespunzător" Când refuză să urmeze o legătură simbolică. [Bug introdus în grep-2.12]
- Schimbări de comportament:
- Variabila de mediu GREP_OPTIONS este acum învechită, iar grep avertizează acum dacă este utilizată. Utilizați în schimb un alias sau un script.
- În localizări cu codificări de caractere multi-bate, altele decât UTF-8, grep -P raportează acum o eroare și iese din loc de a fi prost.
- Atunci când căutați date binare, grep acum poate trata octeți non-text ca terminatori de linie. Acest lucru poate spori semnificativ performanța.
- grep -z nu mai tratează automat octetul ' 200' ca date binare.
Ce este nou în versiunea 2.25:
- Îmbunătățiri:
- Performanța a fost mult îmbunătățită pentru căutarea fișierelor care conțin găuri, pe platforme în care steagul SEEK_DATA al lseek funcționează eficient.
- Performanța sa îmbunătățit pentru respingerea datelor care nu se potrivesc chiar cu prima parte a unui model netrivial.
- Performanța sa îmbunătățit pentru șirurile foarte lungi în modele.
- Dacă un fișier conține date codificate incorect pentru localizarea curentă și acest lucru este descoperit înainte ca oricare din conținutul fișierului să fie trimis, grep tratează acum fișierul ca fiind binar.
- grep -P nu mai raportează o eroare și iese atunci când primește date nevalide UTF-8. În schimb, consideră că datele nu corespund.
- Remedierea erorilor:
- grep nu mai prezintă șabloane care conțin w sau W în locații multibyte.
- Grep nu va conta la noi linii interne atunci când operează în localități non-UTF8 multibyte, ducând-o la imprimarea potențial multor linii care nu se potrivesc. De exemplu, comanda "seq 10" Env LC_ALL = zh_CN src / grep -n .. " Va imprima acest lucru: 1: 1 2 3 4 5 6 7 8 9 10 ceea ce înseamnă că meciul "10" A fost pe linia 1. [bug introdus în grep-2.19]
- grep -F -x -o nu mai imprimă o nouă linie nouă pentru fiecare meci. [Bug introdus în grep-2.19]
- grep într-o locație non-UTF8 multibyte ar putea să se potrivească eronat în mijlocul unui caracter multibyte atunci când folosește o alternativă ancorată '^' într-un model, ducând-o la imprimarea liniilor care nu corespund. [Bug prezent de la "începutul"]
- grep -FY nu se mai potrivește în locații non-UTF8 multibyte, cum ar fi Shift-JIS, atunci când intrarea conține un caracter de 2 octeți, XY, urmat de modelul de căutare cu un singur octet, Y. grep găsește primul , Potrivirea "Y" a mijlocului de multibyte și apoi avansarea greșită a unui indicator intern într-un octet prea departe, sărind peste ținta "Y". După aceea. [Bug introdus în grep-2.19]
- grep -E respinsa de neegalat "), în loc să o trateze ca ')'. [Bug prezent de la "începutul"]
- În NetBSD, grep -r nu mai raportează "Tip sau format de fișier necorespunzător" Când refuză să urmeze o legătură simbolică. [Bug introdus în grep-2.12]
- Schimbări de comportament:
- Variabila de mediu GREP_OPTIONS este acum învechită, iar grep avertizează acum dacă este utilizată. În schimb, utilizați un alias sau un script.
- În localizări cu codificări de caractere multi-bate, altele decât UTF-8, grep -P raportează o eroare și iese din loc de a fi greșit.
- Atunci când căutați date binare, grep acum poate trata octeți non-text ca terminatori de linie. Acest lucru poate spori semnificativ performanța.
- grep -z nu mai tratează automat octetul ' 200' ca date binare.
Ce este nou în versiunea 2.24:
- Îmbunătățiri:
- Performanța a fost mult îmbunătățită pentru căutarea fișierelor care conțin găuri, pe platforme în care steagul SEEK_DATA al lseek funcționează eficient.
- Performanța sa îmbunătățit pentru respingerea datelor care nu se pot potrivi chiar cu prima parte a unui model netrivial.
- Performanța sa îmbunătățit pentru șirurile foarte lungi în modele.
- Dacă un fișier conține date codificate incorect pentru localizarea curentă și acest lucru este descoperit înainte ca oricare din conținutul fișierului să fie trimis, grep tratează acum fișierul ca fiind binar.
- grep -P nu mai raportează o eroare și iese atunci când primește date nevalide UTF-8. În schimb, consideră că datele nu corespund.
- Remedierea erorilor:
- grep nu mai prezintă șabloane care conțin w sau W în locații multibyte.
- Grep nu va conta la noi linii interne atunci când operează în localități non-UTF8 multibyte, conducând-o la imprimarea potențialelor linii care nu se potrivesc. De exemplu, comanda "seq 10" Env LC_ALL = zh_CN src / grep -n .. " Va imprima acest lucru: 1: 1 2 3 4 5 6 7 8 9 10 ceea ce înseamnă că meciul "10" A fost pe linia 1. [bug introdus în grep-2.19]
- grep -F -x -o nu mai imprimă o nouă linie nouă pentru fiecare meci. [Bug introdus în grep-2.19]
- grep într-o locație non-UTF8 multibyte ar putea să se potrivească eronat în mijlocul unui caracter multibyte atunci când folosește o alternativă ancorată '^' într-un model, ducând-o la imprimarea liniilor care nu corespund. [Bug prezent de la "începutul"]
- grep -FY nu mai nu se potrivește în locații non-UTF8 multibyte, cum ar fi Shift-JIS, atunci când intrarea conține un caracter de 2 octeți, XY, urmat de modelul de căutare cu un singur octet, Y. grep găsește primul , Potrivirea "Y" a mijlocului de multibyte și apoi avansarea greșită a unui indicator intern un singur octet prea departe, săriți peste ținta "Y". După aceea. [Bug introdus în grep-2.19]
- grep -E respinsa de neegalat "), în loc să o trateze ca ')'. [Bug prezent de la "începutul"]
- În NetBSD, grep -r nu mai raportează "Tip sau format de fișier necorespunzător" Când refuză să urmeze o legătură simbolică. [Bug introdus în grep-2.12]
- Schimbări de comportament:
- Variabila de mediu GREP_OPTIONS este acum învechită, iar grep avertizează acum dacă este utilizată. Utilizați în schimb un alias sau un script.
- În localizări cu codificări de caractere multi-bate, altele decât UTF-8, grep -P raportează acum o eroare și iese din loc de a fi prost.
- Atunci când căutați date binare, grep acum poate trata octeți non-text ca terminatori de linie. Acest lucru poate spori semnificativ performanța.
- grep -z nu mai tratează automat octetul ' 200' ca date binare.
Ce este nou în versiunea 2.23:
- Îmbunătățiri:
- Performanța a fost mult îmbunătățită pentru căutarea fișierelor care conțin găuri, pe platforme în care steagul SEEK_DATA al lseek funcționează eficient.
- Performanța sa îmbunătățit pentru respingerea datelor care nu se pot potrivi chiar cu prima parte a unui model netrivial.
- Performanța sa îmbunătățit pentru șirurile foarte lungi în modele.
- Dacă un fișier conține date codificate incorect pentru localizarea curentă și acest lucru este descoperit înainte ca oricare din conținutul fișierului să fie trimis, grep tratează acum fișierul ca fiind binar.
- grep -P nu mai raportează o eroare și iese atunci când primește date nevalide UTF-8. În schimb, consideră că datele nu corespund.
- Remedierea erorilor:
- grep nu mai prezintă șabloane care conțin w sau W în locații multibyte.
- Grep nu va conta la noi linii interne atunci când operează în localități non-UTF8 multibyte, conducând-o la imprimarea potențialelor linii care nu se potrivesc. De exemplu, comanda "seq 10" Env LC_ALL = zh_CN src / grep -n .. " Va imprima acest lucru: 1: 1 2 3 4 5 6 7 8 9 10 ceea ce înseamnă că meciul "10" A fost pe linia 1. [bug introdus în grep-2.19]
- grep -F -x -o nu mai imprimă o nouă linie nouă pentru fiecare meci. [Bug introdus în grep-2.19]
- grep într-o locație non-UTF8 multibyte ar putea să se potrivească eronat în mijlocul unui caracter multibyte atunci când folosește o alternativă ancorată '^' într-un model, ducând-o la imprimarea liniilor care nu corespund. [Bug prezent de la "începutul"]
- grep -FY nu mai nu se potrivește în locații non-UTF8 multibyte, cum ar fi Shift-JIS, atunci când intrarea conține un caracter de 2 octeți, XY, urmat de modelul de căutare cu un singur octet, Y. grep găsește primul , Potrivirea "Y" a mijlocului de multibyte și apoi avansarea greșită a unui indicator intern un singur octet prea departe, săriți peste ținta "Y". După aceea. [Bug introdus în grep-2.19]
- grep -E respinsa de neegalat "), în loc să o trateze ca ')'. [Bug prezent de la "începutul"]
- În NetBSD, grep -r nu mai raportează "Tip sau format de fișier necorespunzător" Când refuză să urmeze o legătură simbolică. [Bug introdus în grep-2.12]
- Schimbări de comportament:
- Variabila de mediu GREP_OPTIONS este acum învechită, iar grep avertizează acum dacă este utilizată. Utilizați în schimb un alias sau un script.
- În localizări cu codificări de caractere multi-bate, altele decât UTF-8, grep -P raportează acum o eroare și iese din loc de a fi prost.
- Atunci când căutați date binare, grep acum poate trata octeți non-text ca terminatori de linie. Acest lucru poate spori semnificativ performanța.
- grep -z nu mai tratează automat octetul ' 200' ca date binare.
Ce este nou în versiunea 2.22:
- Îmbunătățiri:
- Performanța a fost mult îmbunătățită pentru căutarea fișierelor care conțin găuri, pe platforme în care steagul SEEK_DATA al lseek funcționează eficient.
- Performanța sa îmbunătățit pentru respingerea datelor care nu se pot potrivi chiar cu prima parte a unui model netrivial.
- Performanța sa îmbunătățit pentru șirurile foarte lungi în modele.
- Dacă un fișier conține date codificate incorect pentru localizarea curentă și acest lucru este descoperit înainte ca oricare din conținutul fișierului să fie trimis, grep tratează acum fișierul ca fiind binar.
- grep -P nu mai raportează o eroare și iese atunci când primește date nevalide UTF-8. În schimb, consideră că datele nu corespund.
- Remedierea erorilor:
- grep nu mai prezintă șabloane care conțin w sau W în locații multibyte.
- Grep nu va conta la noi linii interne atunci când operează în localități non-UTF8 multibyte, conducând-o la imprimarea potențialelor linii care nu se potrivesc. De exemplu, comanda "seq 10" Env LC_ALL = zh_CN src / grep -n .. " Va imprima acest lucru: 1: 1 2 3 4 5 6 7 8 9 10 ceea ce înseamnă că meciul "10" A fost pe linia 1. [bug introdus în grep-2.19]
- grep -F -x -o nu mai imprimă o nouă linie nouă pentru fiecare meci. [Bug introdus în grep-2.19]
- grep într-o locație non-UTF8 multibyte ar putea să se potrivească eronat în mijlocul unui caracter multibyte atunci când folosește o alternativă ancorată '^' într-un model, ducând-o la imprimarea liniilor care nu corespund. [Bug prezent de la "începutul"]
- grep -FY nu se mai potrivește în locații non-UTF8 multibyte, cum ar fi Shift-JIS, atunci când intrarea conține un caracter de 2 octeți, XY, urmat de modelul de căutare cu un singur octet, Y. grep găsește primul , Potrivirea "Y" a mijlocului de multibyte și apoi avansarea greșită a unui indicator intern într-un octet prea departe, sărind peste ținta "Y". După aceea. [Bug introdus în grep-2.19]
- grep -E respinsa de neegalat "), în loc să o trateze ca ')'. [Bug prezent de la "începutul"]
- În NetBSD, grep -r nu mai raportează "Tip sau format de fișier necorespunzător" Când refuză să urmeze o legătură simbolică. [Bug introdus în grep-2.12]
- Schimbări de comportament:
- Variabila de mediu GREP_OPTIONS este acum învechită, iar grep avertizează acum dacă este utilizată. În schimb, utilizați un alias sau un script.
- În localizări cu codificări de caractere multi-bate, altele decât UTF-8, grep -P raportează o eroare și iese din loc de a fi greșit.
- Atunci când căutați date binare, grep acum poate trata octeți non-text ca terminatori de linie. Acest lucru poate spori semnificativ performanța.
- grep -z nu mai tratează automat octetul ' 200' ca date binare.
Ce este nou în versiunea 2.21:
- Îmbunătățiri:
- Performanța a fost mult îmbunătățită pentru căutarea fișierelor care conțin găuri, pe platforme în care steagul SEEK_DATA al lseek funcționează eficient.
- Performanța sa îmbunătățit pentru respingerea datelor care nu se pot potrivi chiar cu prima parte a unui model netrivial.
- Performanța sa îmbunătățit pentru șirurile foarte lungi în modele.
- Dacă un fișier conține date codificate incorect pentru localizarea curentă și acest lucru este descoperit înainte ca oricare din conținutul fișierului să fie trimis, grep tratează acum fișierul ca fiind binar.
- grep -P nu mai raportează o eroare și iese atunci când primește date nevalide UTF-8. În schimb, consideră că datele nu corespund.
- Remedierea erorilor:
- grep nu mai prezintă șabloane care conțin w sau W în locații multibyte.
- Grep nu va conta la noi linii interne atunci când operează în localități non-UTF8 multibyte, conducând-o la imprimarea potențialelor linii care nu se potrivesc. De exemplu, comanda "seq 10" Env LC_ALL = zh_CN src / grep -n .. " Va imprima acest lucru: 1: 1 2 3 4 5 6 7 8 9 10 ceea ce înseamnă că meciul "10" A fost pe linia 1. [bug introdus în grep-2.19]
- grep -F -x -o nu mai imprimă o nouă linie nouă pentru fiecare meci. [Bug introdus în grep-2.19]
- grep într-o locație non-UTF8 multibyte ar putea să se potrivească eronat în mijlocul unui caracter multibyte atunci când folosește o alternativă ancorată '^' într-un model, ducând-o la imprimarea liniilor care nu corespund. [Bug prezent de la "începutul"]
- grep -FY nu mai nu se potrivește în locații non-UTF8 multibyte, cum ar fi Shift-JIS, atunci când intrarea conține un caracter de 2 octeți, XY, urmat de modelul de căutare cu un singur octet, Y. grep găsește primul , Potrivirea "Y" a mijlocului de multibyte și apoi avansarea greșită a unui indicator intern un singur octet prea departe, săriți peste ținta "Y". După aceea. [Bug introdus în grep-2.19]
- grep -E respinsa de neegalat "), în loc să o trateze ca ')'. [Bug prezent de la "începutul"]
- În NetBSD, grep -r nu mai raportează "Tip sau format de fișier necorespunzător" Când refuză să urmeze o legătură simbolică. [Bug introdus în grep-2.12]
- Schimbări de comportament:
- Variabila de mediu GREP_OPTIONS este acum învechită, iar grep avertizează acum dacă este utilizată. Utilizați în schimb un alias sau un script.
- În localizări cu codificări de caractere multi-bate, altele decât UTF-8, grep -P raportează acum o eroare și iese din loc de a fi prost.
- Atunci când căutați date binare, grep acum poate trata bytes non-text ca terminator de linie. Acest lucru poate spori semnificativ performanța.
- grep -z nu mai tratează automat octetul ' 200' ca date binare.
Ce este nou în versiunea 2.20:
Comentariile nu a fost găsit