egrep: குனு / லினக்ஸில் உள்ள கட்டளையின் எடுத்துக்காட்டுகள்

எ.கா.

க்ரெப் இது குனு / லினக்ஸ் கட்டளை வரியில் அதிகம் பயன்படுத்தப்படும் கருவிகளில் ஒன்றாகும். மிகவும் எளிமையான கருவியாக இருந்தாலும், அதிக எண்ணிக்கையிலான செயல்பாடுகளைச் செய்ய இது உங்களை அனுமதிக்கிறது. முந்தைய கட்டளையின் வெளியீட்டில் குறிப்பிட்ட புள்ளிகளைக் கண்டுபிடிக்க இது குழாய்களுடன் குறிப்பாகப் பயன்படுத்தப்படுகிறது. ஆனால் -e விருப்பத்துடன் grep ஐ இயக்குவதற்கு சமமான egrep எனப்படும் ஒரு கருவியும் உள்ளது.

மின் "விரிவாக்கப்பட்ட ரீஜெக்ஸ்" இலிருந்து வருகிறது, இது -E விருப்பத்தை செயல்படுத்துகிறது மற்றும் அந்த விருப்பத்தைப் பயன்படுத்தாமல் இயல்புநிலையாக எக்ரெப்பில் உங்களிடம் உள்ளது. அதாவது, நீங்கள் பயன்படுத்தலாம் வழக்கமான வெளிப்பாடுகள் நீட்டிக்கப்பட்டன. இந்த டுடோரியலில் வழக்கமான வெளிப்பாடுகள் என்ன, அவை எவ்வாறு பயன்படுத்தப்படலாம் மற்றும் * நிக்ஸில் என்ன வகைகள் உள்ளன என்பதை விளக்க நான் செல்ல மாட்டேன். நீங்கள் எக்ரெப் மூலம் செய்யக்கூடிய சில பயனுள்ள விஷயங்களின் நடைமுறை எடுத்துக்காட்டுகளைக் காண்பிப்பேன் ...

grep, egrep மற்றும் fgrep போன்றவை ஒத்தவை. உண்மையில், egrep என்பது grep -E க்கு சமம் மற்றும் fgrep என்பது grep -F க்கு சமம். அதாவது, நம்மைப் பொருத்தவரை, இது வழக்கமான வெளிப்பாடுகளாக வடிவங்களையும் விளக்கும்.

நீங்கள் முடியும் ஒரு வரி அல்லது வார்த்தையைத் தேடுங்கள் ஒன்று அல்லது அதற்கு மேற்பட்ட கோப்புகளில், grep இன் விஷயமும் உள்ளது. எடுத்துக்காட்டாக, நீங்கள் உபுண்டு என்ற வார்த்தையை snap.txt எனப்படும் கோப்பிலும், தற்போதைய கோப்பகத்தில் உள்ள அனைத்து .txt கோப்புகளிலும் தேட விரும்புகிறீர்கள் என்று வைத்துக்கொள்வோம்:

egrep ubuntu snap.txt

egrep ubuntu *.txt

தேடலும் இருக்கலாம் சுழல்நிலை தற்போதைய கோப்பகத்தின் முழு உள்ளடக்கங்களையும் தேட:

egrep -r "hola mundo" *

இதுவரை, சரியான சொற்கள் அல்லது சரங்கள் தேடப்பட்டன, அதாவது, மேல் மற்றும் கீழ் வழக்குகளை (வழக்கு-உணர்திறன்) கணக்கில் எடுத்துக்கொள்வது, ஆனால் நீங்கள் அதை வழக்கு-உணர்வற்ற முறையில் செய்ய விரும்பினால், அவை பெரிய எழுத்து அல்லது சிறிய எழுத்து என்றால் பரவாயில்லை, நீங்கள் பின்வருவனவற்றைப் பயன்படுத்தலாம் (நீங்கள் w ஐச் சேர்த்தால் அது முழுமையான பொருத்தங்களை மட்டுமே காணும்):

egrep -i "ejemplo" documento.txt

egrep -iw "ejemplo" documento.txt

காட்டு, தற்செயல் நிகழ்வுகள் அல்ல, ஆனால் அந்த போட்டிகள் காணப்பட்ட கோப்பு பெயர்கள்:

egrep -l hola *.txt

முறை அல்லது வார்த்தையை மட்டும் காட்டு ஒரு ஆவணத்தில் தேடப்பட்டது:

egrep -o printf hola.c

நீங்கள் கற்பனை செய்யக்கூடிய அனைத்து சாத்தியங்களையும் நீங்கள் பயன்படுத்தலாம் என்பதை நினைவில் கொள்ளுங்கள். முன்பு பார்த்த பல விருப்பங்களை நீங்கள் இணைக்கலாம், அல்லது -A n மற்றும் -B n போன்ற பிற விருப்பங்களுடன் அவற்றை பூர்த்தி செய்யலாம், அங்கு n இதற்கு முன் (முன்) மற்றும் பின் (பின்) காட்ட விரும்பும் வரிகளின் எண்ணிக்கை போட்டியின் அல்லது இரண்டையும் ஒரே நேரத்தில் (சி), இதன் மூலம் போட்டியைச் சுற்றியுள்ளதை நீங்கள் காணலாம்:

egrep -A 2 "printf" hola.c

egrep -B 2 "printf" hola.c

egrep -C 2 printf hola.c

பொருத்தத்தைக் கொண்டிருக்கும் வரிகளை அடக்குங்கள் மற்றும் பொருந்தாதவற்றை மட்டும் காண்பி:

egrep -v "dos" números.doc

அல்லது நீங்கள் விரும்பினால், நீங்கள் பயன்படுத்தலாம் -e உடன் பல சொற்கள் அல்லது பொருத்தங்கள். உதாரணமாக:

egrep -v -e "uno" -e "dos" -e "tres" números.txt

நீங்கள் பயன்படுத்தினால் -c போட்டிகளின் எண்ணிக்கையை மட்டுமே கணக்கிட முடியும், அல்லது பொருந்தாத வரிகளின் எண்ணிக்கையைக் காட்ட -v உடன் அதைத் திருப்புங்கள். உதாரணத்திற்கு:

egrep -c "include" main.c

egrep -v -c "include" main.c

மற்றும் கூட வரி எண்ணைக் காட்டு போட்டி நிகழ்ந்த இடத்தில், முறையே அது வகிக்கும் நிலை:

egrep -n "void" hola.c

egrep -o -b "printf" hola.c

மற்றும் உடன் வழக்கமான வெளிப்பாடுகள் அதன் திறன்களை விரிவாக்க முடியும். எடுத்துக்காட்டாக, ஹலோவுடன் தொடங்கி பை உடன் முடிவடையும் ஒரு வரியைக் கண்டுபிடி, அல்லது ஹலோவுடன் தொடங்கி எதுவாக இருந்தாலும் பின்னர் முறையே பை பை தோன்றும்:

* பின்வரும் கட்டளையின் திருத்தம்: வாசகர் மானுவல் அல்கோசரின் கருத்துக்கு நன்றி, பிழை ஏற்பட்டதால் பின்வரும் கட்டளையை மாற்ற முடிந்தது.

egrep '^Hola.*adiós$' ejemplo.txt

egrep "Hola.*adiós" ejemplo.txt

ஆனால் grep உடனான வித்தியாசத்தைப் பற்றி நீங்கள் ஆச்சரியப்பட்டால், அதை தெளிவுபடுத்தும் ஒரு எடுத்துக்காட்டு இங்கே ... -E இல்லாமல் grep ஐப் பயன்படுத்தும்போது நீங்கள் பயன்படுத்த வேண்டும் தப்பிக்கும் காட்சிகள் எனவே இது சிறப்பு எழுத்துக்களை விளக்குகிறது, இல்லையெனில் அது கணக்கில் எடுத்துக்கொள்ளாமல் அந்த மாதிரியை விளக்குகிறது. மறுபுறம், egrep அல்லது grep -E உடன் அது அவற்றை கணக்கில் எடுத்துக்கொள்ளும். உதாரணத்திற்கு:
grep '^no\(fork\|group\)' /etc/group

அது இதற்கு சமமாக இருக்கும்:

grep -E '^no(fork|group)' /etc/group
egrep '^no(fork|group)' /etc/group

அதாவது, இது நோஃபோர்க் அல்லது நோகுரூப்பில் தொடங்கி பொருந்தும் வரிகளைத் தேடும். ஆனால் நீங்கள் தப்பிக்கும் காட்சிகள் இல்லாமல் grep இன் முதல் வெளிப்பாட்டைப் பயன்படுத்தினால், அது என்ன செய்வது என்பது தேடல் கான்கிரீட் முறை இல்லை (முட்கரண்டி | குழு):

grep 'no(fork|group)' /etc/group

நீங்கள் தேடலாம் எண்ணெழுத்து வரம்புகள், அல்லது சில ஐபிக்களைக் கண்டறிவது போன்ற குறிப்பிட்ட மதிப்புகள்:
cat /etc/networks | egrep "192.168.1.[5-9]"
cat /etc/networks | egrep "192.168.[1-3].[5-9]"
cat /etc/networks | egrep "192.168.1.[0-3]|[5-9]"
egrep 192.168.4.[10,40] networks

நீங்கள் விரும்பினால், மேலும் குறிப்பிட்ட தேடல்களைச் செய்ய பிற வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்தலாம். உதாரணமாக | ஒன்றைக் கண்டுபிடிக்க தற்செயல் அல்லது பிற:

egrep -i '^(printf|scanf)' hola.c

நீங்கள் கூட கண்டுபிடிக்க முடியும் பெரிய எழுத்து, சிற்றெழுத்து, அகர எழுத்துக்கள் மட்டும், அல்லது எண்ணெழுத்து போன்றவை., [: alnum:], [: alpha:], [: digit:], [: lower:], [: print:], [: punct:], [: space:], [ : மேல்:], முதலியன. எடுத்துக்காட்டாக, பெரிய எழுத்தைத் தேட:
egrep [[:upper:]] diccioario

இது உங்களுக்கு உதவுமென நம்புகிறேன் ... விரைவில் அர்ப்பணிக்கப்பட்ட ஒரு கட்டுரையில் வழக்கமான வெளிப்பாடுகளை விளக்குகிறேன் ...


உங்கள் கருத்தை தெரிவிக்கவும்

உங்கள் மின்னஞ்சல் முகவரி வெளியிடப்பட்ட முடியாது. தேவையான புலங்கள் குறிக்கப்பட்டிருக்கும் *

*

*

  1. தரவுக்கு பொறுப்பு: மிகுவல் ஏஞ்சல் கேடன்
  2. தரவின் நோக்கம்: கட்டுப்பாட்டு ஸ்பேம், கருத்து மேலாண்மை.
  3. சட்டபூர்வமாக்கல்: உங்கள் ஒப்புதல்
  4. தரவின் தொடர்பு: சட்டபூர்வமான கடமையால் தவிர மூன்றாம் தரப்பினருக்கு தரவு தெரிவிக்கப்படாது.
  5. தரவு சேமிப்பு: ஆக்சென்டஸ் நெட்வொர்க்குகள் (EU) வழங்கிய தரவுத்தளம்
  6. உரிமைகள்: எந்த நேரத்திலும் உங்கள் தகவல்களை நீங்கள் கட்டுப்படுத்தலாம், மீட்டெடுக்கலாம் மற்றும் நீக்கலாம்.

  1.   மானுவல் அல்கோசர் அவர் கூறினார்

    நல்ல மதியம்

    ஒரு சில கருத்துக்கள் ...

    நீங்கள் 'egrep' கட்டளையை விளக்குகிறீர்கள், ஆனால் 'egrep' மற்றும் 'grep' ஆகியவற்றுக்கு இடையேயான வித்தியாசத்தை வைக்க வேண்டாம், அது இங்கே இருக்க வேண்டும்.

    உதாரணமாக:
    Grep உடன்: ip -4 a | grep '[0-9] \ +'
    எ.கா.வுடன்: ip -4 a | egrep '[0-9] +'

    ஆ, இது தவறு, 'எ.கா. "ஹலோ. * பை" example.txt'; 'ஹலோ' என்ற சரம் மற்றும் அதைத் தொடர்ந்து 'குட்பை' கொண்டிருக்கும் கோட்டில் ஒரு வரி இருக்கும்போது இங்கே வெற்றி ஏற்படுகிறது, அந்த வரி உண்மையில் எதையாவது தொடங்கி முடிக்க முடியும்.

    கட்டுரை இவ்வாறு கூறுகிறது:
    egrep '^ வணக்கம். * bye example' example.txt

    எல்லா விருப்பங்களும், அல்லது கிட்டத்தட்ட அனைத்தும் (அதைச் சரிபார்க்க நான் நிறுத்தவில்லை), 'grep' இன் விருப்பங்கள் 'egrep' பிரத்தியேகமாக இல்லை.

    சிறந்த வாழ்த்துக்கள்

    1.    ஈசாக்கு அவர் கூறினார்

      அந்த பிழையைப் புகாரளித்ததற்கு நன்றி. வழக்கமான வெளிப்பாடுகளில் நீங்கள் என்ன கருத்து தெரிவிக்கிறீர்கள், நான் ஏற்கனவே இரண்டாவது பத்தியில் வைத்திருக்கிறேன். நான் அவர்களுக்கு ஒரு குறிப்பிட்ட கட்டுரையை அர்ப்பணிப்பேன், ஏனென்றால் பல உள்ளன, இந்த கட்டுரை அதிக நேரம் எடுக்கும். ஒரு வாழ்த்து!

      1.    மானுவல் அல்கோசர் அவர் கூறினார்

        மீண்டும் வணக்கம், ஐசக்.

        இரண்டாவது பத்தியில், 'எக்ரெப்' என்பது 'கிரெப்-இ' இன் மாற்றுப்பெயர் என்று நீங்கள் அடிப்படையில் சொல்ல வேண்டும், அல்லது சொல்லியிருக்க வேண்டும், ஆனால் சில வழக்கமான வெளிப்பாடுகளுடன் 'எக்ரெப்' ஐப் பயன்படுத்துவதற்கான எந்த உதாரணத்தையும் நீங்கள் கொடுக்கவில்லை. 'grep' ஆல் பயன்படுத்தப்படுகிறது.

        நீட்டிக்கப்பட்ட வழக்கமான வெளிப்பாடுகளை விளக்க ஒரு கட்டுரையை அர்ப்பணிப்பது எனக்கு தைரியமாகத் தோன்றுகிறது, ஏனென்றால் இதுபோன்ற தளங்கள் விளம்பரம் செய்யாதவை மற்றும் குனு சமூகத்திற்கு மிக முக்கியமான தகவல் பணிகளைச் செய்கின்றன: https://www.rexegg.com/

        ட்ரோலிங்கிற்காக நான் இங்கு எழுதவில்லை, இதையெல்லாம் கொண்ட எனது நோக்கம் என்னவென்றால், 'எக்ரெப்' அல்லது 'கிரெப்' என்ன செய்கிறது என்பதைப் பார்க்க யாராவது இந்த இடுகையைப் படித்தால், தயவுசெய்து மற்ற ஆதாரங்களைப் பாருங்கள், இந்த நுழைவு எதையும் குறிக்க முடியாது, அது விளக்குகிறது சிறியது, மோசமாக, மிதமிஞ்சிய தகவல்களை வழங்குகிறது மற்றும் குழப்பமானதாக இருக்கலாம், குறிப்பாக குனு பற்றிய அறிவு இல்லாதவர்களுக்கும் அது வழங்கும் சக்திவாய்ந்த கருவிகளுக்கும்.

        இறுதியாக, எனது முதல் கருத்துக்குப் பிறகு (^ $) நான் சுட்டிக்காட்டிய பிழையைச் சேர்த்துள்ளீர்கள். மற்ற தளங்களைப் போலவே, நீங்கள் திருத்தம் செய்த நபரை மேற்கோள் காட்டியிருக்க வேண்டும், அல்லது குறைந்தபட்சம் அது ஒரு திருத்தம் என்று சொல்ல வேண்டும், இது குனு தளத்தின் ஒரு பகுதியாகும், இந்த வலைப்பதிவு தொடங்கப்பட்ட மற்றும் இழந்த அதே தளமாகும்.

        ஒரு வாழ்த்து.

        1.    ஈசாக்கு அவர் கூறினார்

          உங்கள் பார்வைக்கு நன்றி.

  2.   fsafs அவர் கூறினார்

    ffff