ഫയലുകളിൽ ടെക്സ്റ്റ് സ്ട്രിംഗുകൾ കണ്ടെത്തുന്നതിന് fgrep കമാൻഡ് എങ്ങനെ ഉപയോഗിക്കാം


ചുരുക്കം: ഈ തുടക്കക്കാർക്ക് അനുയോജ്യമായ ഗൈഡിൽ, fgrep കമാൻഡിന്റെ ചില പ്രായോഗിക ഉദാഹരണങ്ങൾ ഞങ്ങൾ ചർച്ച ചെയ്യും. ഈ ഗൈഡിന്റെ അവസാനത്തോടെ, ഉപയോക്താക്കൾക്ക് കമാൻഡ് ലൈൻ ഇന്റർഫേസ് ഉപയോഗിച്ച് ടെക്സ്റ്റ് തിരയൽ പ്രവർത്തനങ്ങൾ കാര്യക്ഷമമായി നിർവഹിക്കാൻ കഴിയും.

ടെക്സ്റ്റ് സെർച്ചിംഗ് ഏറ്റവും സാധാരണമായ പ്രവർത്തനങ്ങളിൽ ഒന്നാണ്. എന്നിരുന്നാലും, ഉപയോക്താക്കൾക്ക് ശരിയായ ടൂളുകൾ പരിചയമില്ലെങ്കിൽ ഈ ലളിതമായ ജോലി പെട്ടെന്ന് സമയമെടുക്കുന്നു. ലിനക്സിൽ, സെഡ്, കട്ട് മുതലായവ പോലുള്ള വിവിധ ടെക്സ്റ്റ് ഫിൽട്ടറിംഗ് യൂട്ടിലിറ്റികൾ ഉണ്ട്.

എന്നിരുന്നാലും, ലിനക്സിൽ, ലളിതമായ ടെക്സ്റ്റ് തിരയലിനുള്ള ഏറ്റവും ഇഷ്ടപ്പെട്ട യൂട്ടിലിറ്റിയാണ് fgrep. ഈ ഗൈഡിൽ, ദൈനംദിന ജീവിതത്തിൽ ഉപയോഗിക്കാവുന്ന fgrep കമാൻഡിന്റെ ചില പരിശീലന ഉദാഹരണങ്ങൾ ഞങ്ങൾ ചർച്ച ചെയ്യാൻ പോകുന്നു.

Linux-ലെ fgrep കമാൻഡ് grep കമാൻഡിന്റെ കുടുംബത്തിന് കീഴിലാണ്. എന്നിരുന്നാലും, സാധാരണ എക്സ്പ്രഷനുകൾക്ക് പകരം ഫിക്സഡ് സ്ട്രിംഗ് പാറ്റേൺ തിരയാൻ ഇത് ഉപയോഗിക്കുന്നു. അതിനാൽ കമാൻഡിന്റെ പേര് fgrep (ഫിക്സഡ് ജിആർഇപി) എന്നാണ്.

fgrep കമാൻഡിന്റെ വാക്യഘടന മറ്റ് grep ഫാമിലി കമാൻഡുകൾക്ക് സമാനമാണ്:

$ fgrep [OPTIONS] PATTERNS [FILES]

ആരംഭിക്കുന്നതിന്, ഒരു ഉദാഹരണം ഉപയോഗിക്കുന്നതിന് ഇനിപ്പറയുന്ന ഉള്ളടക്കങ്ങളുള്ള ഒരു പ്ലെയിൻ ടെക്സ്റ്റ് ഫയൽ സൃഷ്ടിക്കാം:

$ cat input.txt

ഇവിടെ, സാമ്പിൾ ഉള്ളടക്കങ്ങൾക്കൊപ്പം ടെക്സ്റ്റ് ഫയൽ തയ്യാറാണെന്ന് നമുക്ക് കാണാൻ കഴിയും. ഇനി നമുക്ക് അടുത്ത ഏതാനും ഉദാഹരണങ്ങളിൽ fgrep കമാൻഡിന്റെ ചില സാധാരണ ഉദാഹരണങ്ങൾ ചർച്ച ചെയ്യാം.

1. grep, egrep കമാൻഡുകളേക്കാൾ fgrep എങ്ങനെ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു?

പേര് സൂചിപ്പിക്കുന്നത് പോലെ, ഫിക്സഡ് സ്ട്രിംഗ് പാറ്റേണുകൾക്കായി തിരയാൻ fgrep കമാൻഡ് ഉപയോഗിക്കുന്നു. ഇത് പാറ്റേണിനെ ഒരു സാധാരണ പദപ്രയോഗത്തിന് പകരം ഒരു നിശ്ചിത സ്ട്രിംഗായി വ്യാഖ്യാനിക്കുന്നു. അതിനാൽ ഇത് സമയ-കാര്യക്ഷമമായ രീതിയിൽ തിരയൽ പ്രവർത്തനം നടത്തുന്നു.

വ്യത്യാസം മനസ്സിലാക്കാൻ, grep കമാൻഡിനൊപ്പം ഒരു ഡോട്ട് (.) പ്രതീകം ഉപയോഗിക്കാം.

ഈ ലളിതമായ റെഗുലർ എക്സ്പ്രഷൻ, വരിയുടെ അവസാനം ഒഴികെയുള്ള ഏതെങ്കിലും ഒരു പ്രതീകവുമായി പൊരുത്തപ്പെടുന്നു:

$ grep ha. input.txt

മുകളിലെ ഔട്ട്പുട്ടിൽ, ഡോട്ട് (.) പ്രതീകം har, hat, has എന്നീ വാചകങ്ങളുമായി പൊരുത്തപ്പെടുന്നതായി നമുക്ക് കാണാൻ കഴിയും.

ഇപ്പോൾ, fgrep കമാൻഡിനൊപ്പം അതേ പാറ്റേൺ ഉപയോഗിക്കുകയും ഫലം നിരീക്ഷിക്കുകയും ചെയ്യാം:

$ fgrep ha. input.txt

മുകളിലെ ഔട്ട്പുട്ടിൽ, നൽകിയിരിക്കുന്ന പാറ്റേൺ കണ്ടെത്തുന്നതിൽ കമാൻഡ് പരാജയപ്പെടുന്നത് നമുക്ക് കാണാൻ കഴിയും.

fgrep കമാൻഡ് റെഗുലർ എക്സ്പ്രഷനുകൾ തിരിച്ചറിയാത്തതിനാലും നിലവിലില്ലാത്ത പാറ്റേണിനായി തിരയാൻ ശ്രമിക്കുന്നതിനാലും ഇത് സംഭവിക്കുന്നു - \ha..

[ നിങ്ങൾക്ക് ഇതും ഇഷ്ടപ്പെടാം: Linux-ൽ Grep, Egrep, Fgrep എന്നിവ തമ്മിലുള്ള വ്യത്യാസം എന്താണ്? ]

2. ഒരു ഫയലിൽ ഒരു പാറ്റേൺ എങ്ങനെ തിരയാം

ഒരു input.txt ഫയലിൽ ഒരു സ്ട്രിംഗ് പ്രൊഫഷണലിനായി തിരയുന്ന അടിസ്ഥാന ഉദാഹരണത്തിൽ നിന്ന് നമുക്ക് ആരംഭിക്കാം:

$ fgrep professionals input.txt

നമുക്ക് കാണാനാകുന്നതുപോലെ, പാറ്റേൺ പൊരുത്തപ്പെടുത്തൽ രണ്ട് സ്ഥലങ്ങളിൽ വിജയിക്കുകയും അത് ചുവപ്പ് നിറത്തിൽ ഹൈലൈറ്റ് ചെയ്യുകയും ചെയ്യുന്നു.

3. പൊരുത്തപ്പെടുന്ന പാറ്റേണുകൾക്കായി Grep ഔട്ട്പുട്ട് നിറം എങ്ങനെ സജ്ജീകരിക്കാം

മുമ്പത്തെ ഉദാഹരണത്തിൽ, സ്ഥിരസ്ഥിതിയായി, പൊരുത്തപ്പെടുന്ന പാറ്റേൺ ചുവപ്പ് നിറത്തിൽ ഹൈലൈറ്റ് ചെയ്തതായി ഞങ്ങൾ കണ്ടു. എന്നിരുന്നാലും, GREP_COLOR എൻവയോൺമെന്റ് വേരിയബിളുകൾക്ക് മറ്റൊരു മൂല്യം നൽകിക്കൊണ്ട് നമുക്ക് ഈ സ്വഭാവം മാറ്റാനാകും.

പച്ച നിറത്തിൽ പൊരുത്തപ്പെടുന്ന പാറ്റേൺ ഹൈലൈറ്റ് ചെയ്യുന്നതിന് GREP_COLOR പരിസ്ഥിതി വേരിയബിളിന് മൂല്യം 32 നൽകാം:

$ export GREP_COLOR=32
$ fgrep professionals input.txt

ഇപ്പോൾ, അടുത്ത ഉദാഹരണത്തിലേക്ക് പോകുന്നതിന് മുമ്പ്, സ്ഥിരസ്ഥിതി സ്വഭാവം പ്രവർത്തനക്ഷമമാക്കുന്നതിന് GREP_COLOR എൻവയോൺമെന്റ് വേരിയബിൾ അൺസെറ്റ് ചെയ്യുക:

$ unset GREP_COLOR

4. ഒരു ഫയലിൽ ഒന്നിലധികം പാറ്റേണുകൾ എങ്ങനെ തിരയാം

ചിലപ്പോൾ, ഒന്നിലധികം സ്ട്രിംഗുകൾക്കായി പാറ്റേൺ പൊരുത്തപ്പെടുത്തൽ നടത്തേണ്ടതുണ്ട്. അത്തരം സന്ദർഭങ്ങളിൽ, കമാൻഡ് ലൈൻ ആർഗ്യുമെന്റിന് പകരം നമുക്ക് ടെക്സ്റ്റ് ഫയലിൽ നിന്ന് പാറ്റേണുകൾ നൽകാം.

ഒരു പ്രത്യേക ലൈനിൽ ഒന്നിലധികം പാറ്റേണുകൾ അടങ്ങുന്ന ഒരു ടെക്സ്റ്റ് ഫയൽ നമുക്ക് സൃഷ്ടിക്കാം:

$ cat pattern.txt

professionals
website

ഇപ്പോൾ, ഒന്നിലധികം പാറ്റേൺ പൊരുത്തപ്പെടുത്തലിനായി -f ഓപ്ഷൻ ഉപയോഗിച്ച് ഈ ഫയൽ ഉപയോഗിക്കാം:

$ fgrep -f pattern.txt input.txt

മുകളിലെ ഔട്ട്പുട്ടിൽ, സ്ട്രിംഗ് പ്രൊഫഷണലുകൾക്കും വെബ്സൈറ്റിനും പാറ്റേൺ പൊരുത്തപ്പെടുത്തൽ വിജയിക്കുന്നത് നമുക്ക് കാണാൻ കഴിയും.

5. ഫയലിലെ പൊരുത്തങ്ങളുടെ എണ്ണം എങ്ങനെ പരിമിതപ്പെടുത്താം

സ്ഥിരസ്ഥിതിയായി, മുഴുവൻ ഫയലും പ്രോസസ്സ് ചെയ്യുന്നതുവരെ fgrep കമാൻഡ് പാറ്റേൺ പൊരുത്തപ്പെടുത്തൽ തുടരുന്നു.

എന്നിരുന്നാലും, ചിലപ്പോൾ ഞങ്ങൾ മത്സരങ്ങളുടെ എണ്ണം പരിമിതപ്പെടുത്തേണ്ടതുണ്ട്. അത്തരം സന്ദർഭങ്ങളിൽ, കമാൻഡ് ഉപയോഗിച്ച് നമുക്ക് -m ഓപ്ഷൻ ഉപയോഗിക്കാം:

$ fgrep -m 1 professionals input.txt

TecMint was started on 15th August 2012 by technical professionals and all the

ഈ ഉദാഹരണത്തിൽ, fgrep കമാൻഡ് ആദ്യ പാറ്റേണുമായി പൊരുത്തപ്പെട്ട ശേഷം ഫയൽ പ്രോസസ്സിംഗ് നിർത്തുന്നു.

6. പാറ്റേൺ തിരയുമ്പോൾ ഫയലിന്റെ പേര് എങ്ങനെ പ്രിന്റ് ചെയ്യാം

ചിലപ്പോൾ, ഒരു പ്രത്യേക പാറ്റേൺ ഉള്ള ഫയലുകളുടെ പേര് നമുക്ക് കണ്ടെത്തേണ്ടതുണ്ട്. അത്തരം സന്ദർഭങ്ങളിൽ, fgrep കമാൻഡിന്റെ -l ഓപ്ഷൻ ഉപയോഗിക്കാം:

$ fgrep -l professionals input.txt

input.txt

പൊരുത്തപ്പെടുന്ന പാറ്റേണുകളുള്ള വരികൾക്ക് പകരം കമാൻഡ് ഫയലിന്റെ പേര് പ്രിന്റ് ചെയ്യുന്നതായി ഇവിടെ നമുക്ക് കാണാൻ കഴിയും.

7. പാറ്റേൺ പൊരുത്തപ്പെടുത്തൽ പരാജയപ്പെടുമ്പോൾ ഫയലിന്റെ പേര് എങ്ങനെ പ്രിന്റ് ചെയ്യാം

മുമ്പത്തെ ഉദാഹരണത്തിൽ, പാറ്റേൺ പൊരുത്തപ്പെടുത്തൽ വിജയിക്കുമ്പോൾ ഫയലിന്റെ പേര് എങ്ങനെ പ്രിന്റ് ചെയ്യാമെന്ന് ഞങ്ങൾ കണ്ടു. ഇപ്പോൾ, എങ്ങനെയാണ് ഓപ്പറേഷൻ റിവേഴ്സ് രീതിയിൽ നിർവഹിക്കുന്നതെന്ന് നോക്കാം.

ഫയലിൽ നിലവിലില്ലാത്ത പാറ്റേൺ കണ്ടെത്താനും ഫലം നിരീക്ഷിക്കാനും ശ്രമിക്കാം:

$ fgrep -L non-existing-word input.txt

input.txt

ഈ ഉദാഹരണത്തിൽ, പാറ്റേൺ പൊരുത്തപ്പെടുത്തൽ വിജയിക്കാത്തപ്പോൾ ഫയലിന്റെ പേര് പ്രിന്റ് ചെയ്യുന്ന കമാൻഡിന്റെ -L ഓപ്ഷൻ ഞങ്ങൾ ഉപയോഗിച്ചു.

8. പിശക് സന്ദേശങ്ങൾ എങ്ങനെ അടിച്ചമർത്താം

ഷെൽ സ്ക്രിപ്റ്റുകൾ എഴുതുമ്പോൾ പിശക് കൈകാര്യം ചെയ്യുന്നത് നിർണായക പങ്ക് വഹിക്കുന്നു. എന്നിരുന്നാലും, ചില നിർണായകമല്ലാത്ത സാഹചര്യങ്ങളിൽ, പിശക് സന്ദേശങ്ങൾ നമുക്ക് സുരക്ഷിതമായി അവഗണിക്കാം.

fgrep-ൽ, നിലവിലില്ലാത്തതോ വായിക്കാൻ കഴിയാത്തതോ ആയ ഫയലുകളുമായി ബന്ധപ്പെട്ട പിശകുകൾ തടയുന്ന -s ഓപ്ഷൻ ഉപയോഗിക്കാം. ഈ സ്വഭാവം മികച്ച രീതിയിൽ മനസ്സിലാക്കാൻ, നിലവിലില്ലാത്ത ഫയലിൽ ഒരു പാറ്റേൺ തിരയാൻ ശ്രമിക്കാം:

$ fgrep -s professionals non-existing-file.txt
$ echo $?

2

മുകളിലുള്ള ഔട്ട്പുട്ടിൽ, സ്റ്റാൻഡേർഡ് എറർ സ്ട്രീമിൽ കമാൻഡ് ഒരു പിശകും കാണിക്കുന്നില്ലെന്ന് നമുക്ക് കാണാൻ കഴിയും. എന്നിരുന്നാലും, പരാജയം റിപ്പോർട്ട് ചെയ്യപ്പെടുന്നത് പൂജ്യമല്ലാത്ത റിട്ടേൺ മൂല്യമാണ്.

ഇതുകൂടാതെ, ഫയൽ വായിക്കാൻ പറ്റാത്ത അവസ്ഥയിലും നമുക്ക് ഇതേ സ്വഭാവം നിരീക്ഷിക്കാം. അതിനാൽ, ആദ്യം, chmod കമാൻഡ് ഉപയോഗിച്ച് ഫയൽ അനുമതി പരിഷ്കരിക്കുക:

$ chmod 000 input.txt 
$ ls -l input.txt

ഇപ്പോൾ, പാറ്റേൺ തിരയാനും ഫലം നിരീക്ഷിക്കാനും ശ്രമിക്കുക:

$ fgrep -s professionals input.txt 
$ echo $?

ഈ ലേഖനത്തിൽ, fgrep കമാൻഡിന്റെ ഉപയോഗപ്രദമായ ചില ഉദാഹരണങ്ങൾ ഞങ്ങൾ ചർച്ച ചെയ്തു. ലിനക്സിൽ പ്രവർത്തിക്കുമ്പോൾ ഉൽപ്പാദനക്ഷമത മെച്ചപ്പെടുത്തുന്നതിന് തുടക്കക്കാർക്ക് ദൈനംദിന ജീവിതത്തിൽ ഈ ഉദാഹരണങ്ങൾ ഉപയോഗിക്കാം.

ലിനക്സിലെ fgrep കമാൻഡിന്റെ മറ്റേതെങ്കിലും മികച്ച ഉദാഹരണം നിങ്ങൾക്കറിയാമോ? ചുവടെയുള്ള അഭിപ്രായങ്ങളിൽ നിങ്ങളുടെ വീക്ഷണങ്ങൾ ഞങ്ങളെ അറിയിക്കുക.