ഫയലുകളിലും ഡയറക്ടറികളിലും ഒരു പ്രത്യേക സ്ട്രിംഗ് അല്ലെങ്കിൽ വേഡ് എങ്ങനെ കണ്ടെത്താം


നിങ്ങളുടെ മുഴുവൻ ലിനക്uസ് സിസ്റ്റത്തിലോ നൽകിയിരിക്കുന്ന ഡയറക്uടറിയിലോ ഒരു പ്രത്യേക വാക്കോ ടെക്uസ്uറ്റിന്റെ സ്uട്രിംഗോ അടങ്ങിയിരിക്കുന്ന എല്ലാ ഫയലുകളും കണ്ടെത്താൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ. അത് എങ്ങനെ ചെയ്യണമെന്ന് ഈ ലേഖനം നിങ്ങളെ നയിക്കും, തന്നിരിക്കുന്ന ടെക്uസ്uറ്റ് സ്uട്രിംഗ് അടങ്ങുന്ന എല്ലാ ഫയലുകളും കണ്ടെത്തുന്നതിനും ലിസ്uറ്റ് ചെയ്യുന്നതിനും ഡയറക്uടറികൾ എങ്ങനെ ആവർത്തിച്ച് കുഴിക്കാമെന്ന് നിങ്ങൾ പഠിക്കും.

യുണിക്സ് പോലുള്ള സിസ്റ്റങ്ങളിലെ ഫയലുകളിൽ നിന്നോ ഡയറക്uടറികളിൽ നിന്നോ പാറ്റേണുകളും വാക്കുകളും കണ്ടെത്തുന്നതിനുള്ള ശക്തവും കാര്യക്ഷമവും വിശ്വസനീയവും ഏറ്റവും ജനപ്രിയവുമായ കമാൻഡ്-ലൈൻ യൂട്ടിലിറ്റിയാണ് grep പാറ്റേൺ സെർച്ചിംഗ് ടൂൾ ഉപയോഗിച്ച് ഇത് പരിഹരിക്കാനുള്ള ഒരു ലളിതമായ മാർഗ്ഗം.

താഴെയുള്ള കമാൻഡ്, ~/bin ഡയറക്uടറിയിൽ ആവർത്തിച്ചും ആക്രമണാത്മകമായും തിരഞ്ഞുകൊണ്ട് \check_root എന്ന ടെക്uസ്uറ്റുള്ള ഒരു ലൈൻ അടങ്ങിയ എല്ലാ ഫയലുകളും ലിസ്റ്റ് ചെയ്യും.

$ grep -Rw ~/bin/ -e 'check_root'

-R ഓപ്uഷൻ, ഓരോ ഡയറക്uടറിക്കു കീഴിലുള്ള എല്ലാ ഫയലുകളും വായിക്കാൻ grep-നോട് പറയുന്നിടത്ത്, പ്രതീകാത്മക ലിങ്കുകൾ കമാൻഡ് ലൈനിൽ ആണെങ്കിൽ മാത്രം, ആവർത്തനക്രമത്തിൽ, സിംബോളിക് ലിങ്കുകൾ പിന്തുടരുന്നു, ഒപ്പം -w എന്ന ഓപ്uഷൻ അതിനോട് പൊരുത്തപ്പെടുന്ന വരികൾ മാത്രം തിരഞ്ഞെടുക്കാൻ നിർദ്ദേശിക്കുന്നു. മുഴുവൻ വാക്കുകളും, തിരയേണ്ട സ്ട്രിംഗ് (പാറ്റേൺ) വ്യക്തമാക്കാൻ -e ഉപയോഗിക്കുന്നു.

റൂട്ട് അനുമതികൾ ആവശ്യമുള്ള ചില ഡയറക്ടറികളോ ഫയലുകളോ തിരയുമ്പോൾ നിങ്ങൾ sudo കമാൻഡ് ഉപയോഗിക്കണം (റൂട്ട് അക്കൗണ്ട് ഉപയോഗിച്ച് നിങ്ങളുടെ സിസ്റ്റം നിയന്ത്രിക്കുന്നില്ലെങ്കിൽ).

 
$ sudo grep -Rw / -e 'check_root'	

കേസ് വ്യത്യാസങ്ങൾ അവഗണിക്കാൻ കാണിച്ചിരിക്കുന്നതുപോലെ -i ഓപ്ഷൻ ഉപയോഗിക്കുക:

$ grep -Riw ~/bin/ -e 'check_root'

ടെക്uസ്uറ്റിന്റെ സ്uട്രിംഗ് നിലനിൽക്കുന്ന കൃത്യമായ ലൈൻ നിങ്ങൾക്ക് അറിയണമെങ്കിൽ, -n ഓപ്ഷൻ ഉൾപ്പെടുത്തുക.

$ grep -Rinw ~/bin/ -e 'check_root'

നിങ്ങൾ തിരയാൻ ആഗ്രഹിക്കുന്ന ഒരു ഡയറക്uടറിയിൽ നിരവധി തരം ഫയലുകൾ ഉണ്ടെന്ന് അനുമാനിക്കുകയാണെങ്കിൽ, --include ഓപ്uഷൻ ഉപയോഗിച്ച് അവയുടെ വിപുലീകരണത്തിലൂടെ, ഉദാഹരണത്തിന് തിരയേണ്ട ഫയലുകളുടെ തരവും നിങ്ങൾക്ക് വ്യക്തമാക്കാം.

എല്ലാ .sh ഫയലുകളും മാത്രം നോക്കാൻ grep-നെ ഈ ഉദാഹരണം നിർദ്ദേശിക്കുന്നു.

$ grep -Rnw --include=\*.sh ~/bin/ -e 'check_root'

കൂടാതെ, ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് ഒന്നിൽ കൂടുതൽ പാറ്റേണുകൾക്കായി തിരയാൻ കഴിയും.

$ grep -Rinw ~/bin/ -e 'check_root' -e 'netstat'

അത്രയേയുള്ളൂ! ഫയലുകളിൽ സ്ട്രിംഗോ പദമോ കണ്ടെത്താൻ നിങ്ങൾക്ക് മറ്റേതെങ്കിലും കമാൻഡ്-ലൈൻ ട്രിക്ക് അറിയാമെങ്കിൽ, ഞങ്ങളുമായി പങ്കിടുക അല്ലെങ്കിൽ ഈ വിഷയത്തെക്കുറിച്ച് എന്തെങ്കിലും ചോദ്യങ്ങൾ ചോദിക്കുക, ചുവടെയുള്ള അഭിപ്രായ ഫോം ഉപയോഗിക്കുക.