Linux-ൽ Awk ഉപയോഗിച്ച് കോമ്പൗണ്ട് എക്സ്പ്രഷനുകൾ എങ്ങനെ ഉപയോഗിക്കാം - ഭാഗം 5
എല്ലായ്uപ്പോഴും, ഒരു വ്യവസ്ഥ പാലിച്ചിട്ടുണ്ടോ ഇല്ലയോ എന്ന് പരിശോധിക്കുമ്പോൾ ഞങ്ങൾ ലളിതമായ പദപ്രയോഗങ്ങൾ നോക്കുന്നു. ഒരു പ്രത്യേക അവസ്ഥ പരിശോധിക്കാൻ നിങ്ങൾക്ക് ഒന്നിൽ കൂടുതൽ പദപ്രയോഗങ്ങൾ ഉപയോഗിക്കണമെങ്കിൽ എന്തുചെയ്യും?
ഈ ലേഖനത്തിൽ, ടെക്uസ്uറ്റോ സ്uട്രിംഗുകളോ ഫിൽട്ടർ ചെയ്യുമ്പോൾ ഒരു അവസ്ഥ പരിശോധിക്കുന്നതിന് കോമ്പൗണ്ട് എക്uസ്uപ്രഷനുകൾ എന്ന് വിളിക്കുന്ന ഒന്നിലധികം എക്uസ്uപ്രഷനുകൾ എങ്ങനെ സംയോജിപ്പിക്കാമെന്ന് ഞങ്ങൾ പരിശോധിക്കും.
Awk-ൽ, (ഒപ്പം)
എന്ന് പരാമർശിക്കുന്ന &&
ഉം (അല്ലെങ്കിൽ) എന്ന് പരാമർശിക്കുന്ന
കോമ്പൗണ്ട് ഓപ്പറേറ്റർമാർ.||
ഉപയോഗിച്ചാണ് കോമ്പൗണ്ട് എക്സ്പ്രഷനുകൾ നിർമ്മിച്ചിരിക്കുന്നത്.
സംയുക്ത പദപ്രയോഗങ്ങളുടെ പൊതുവായ വാക്യഘടന ഇതാണ്:
( first_expression ) && ( second_expression )
ഇവിടെ, മുഴുവൻ പദപ്രയോഗവും ശരിയാക്കാൻ, ആദ്യ_എക്uസ്uപ്രഷൻ
, രണ്ടാം_എക്uസ്uപ്രഷൻ
എന്നിവ ശരിയായിരിക്കണം.
( first_expression ) || ( second_expression)
ഇവിടെ, മുഴുവൻ പദപ്രയോഗവും ശരിയാകുന്നതിന്, first_expression
അല്ലെങ്കിൽ second_expression
എന്ന പദപ്രയോഗങ്ങളിലൊന്ന് ശരിയായിരിക്കണം.
മുന്നറിയിപ്പ്: എപ്പോഴും പരാൻതീസിസ് ഉൾപ്പെടുത്താൻ ഓർക്കുക.
awk സീരീസിന്റെ ഭാഗം 4-ൽ ഞങ്ങൾ നോക്കിയ താരതമ്യ ഓപ്പറേറ്ററുകൾ ഉപയോഗിച്ച് എക്സ്പ്രഷനുകൾ നിർമ്മിക്കാൻ കഴിയും.
ചുവടെയുള്ള ഒരു ഉദാഹരണം ഉപയോഗിച്ച് നമുക്ക് ഇപ്പോൾ വ്യക്തമായ ധാരണ നേടാം:
ഈ ഉദാഹരണത്തിൽ, ഒരു ടെക്uസ്uറ്റ് ഫയൽ tecmint_deals.txt
എന്ന പേരിൽ ഉണ്ട്, അതിൽ ചില ക്രമരഹിതമായ Tecmint ഡീലുകളുടെ ഒരു ലിസ്റ്റ് അടങ്ങിയിരിക്കുന്നു, അതിൽ ഡീലിന്റെ പേരും വിലയും തരവും ഉൾപ്പെടുന്നു.
No Name Price Type 1 Mac_OS_X_Cleanup_Suite $9.99 Software 2 Basics_Notebook $14.99 Lifestyle 3 Tactical_Pen $25.99 Lifestyle 4 Scapple $19.00 Unknown 5 Nano_Tool_Pack $11.99 Unknown 6 Ditto_Bluetooth_Altering_Device $33.00 Tech 7 Nano_Prowler_Mini_Drone $36.99 Tech
ഓരോ വരിയുടെയും അവസാനം (**)
ചിഹ്നം ഉപയോഗിച്ച് $20-ന് മുകളിലുള്ളതും \ടെക് എന്ന തരത്തിലുമുള്ള പ്രിന്റ് ചെയ്ത് ഫ്ലാഗ് ഡീലുകൾ മാത്രമേ ഞങ്ങൾക്ക് ആവശ്യമുള്ളൂ എന്ന് പറയുക.
നമുക്ക് താഴെയുള്ള കമാൻഡ് പ്രവർത്തിപ്പിക്കേണ്ടതുണ്ട്.
# awk '($3 ~ /^$[2-9][0-9]*\.[0-9][0-9]$/) && ($4=="Tech") { printf "%s\t%s\n",$0,"*"; } ' tecmint_deals.txt 6 Ditto_Bluetooth_Altering_Device $33.00 Tech * 7 Nano_Prowler_Mini_Drone $36.99 Tech *
ഈ ഉദാഹരണത്തിൽ, ഒരു സംയുക്ത പദപ്രയോഗത്തിൽ ഞങ്ങൾ രണ്ട് പദപ്രയോഗങ്ങൾ ഉപയോഗിച്ചു:
- ആദ്യ പദപ്രയോഗം, ($3 ~ /^\$[2-9][0-9]*\.[0-9][0-9]$/) ; $20-ന് മുകളിലുള്ള വിലയുമായി ഡീലുകളുള്ള ലൈനുകൾ പരിശോധിക്കുന്നു, കൂടാതെ $3 ന്റെ മൂല്യം പാറ്റേണുമായി പൊരുത്തപ്പെടുന്നെങ്കിൽ മാത്രമേ അത് ശരിയാകൂ. /^\$[2-9][0-9]*\.[0-9] [0-9]$/
- ഒപ്പം രണ്ടാമത്തെ എക്സ്പ്രഷൻ, ($4 == “ടെക്”) ; ഡീൽ \ടെക് തരത്തിലാണോ എന്ന് പരിശോധിക്കുന്നു, $4 ന്റെ മൂല്യം \ടെക് എന്നതിന് തുല്യമാണെങ്കിൽ മാത്രമേ അത് ശരിയാകൂ.
ഓർക്കുക, (**)
ഉപയോഗിച്ച് മാത്രമേ ഒരു ലൈൻ ഫ്ലാഗ് ചെയ്യപ്പെടുകയുള്ളൂ, &&
ഓപ്പറേറ്ററുടെ തത്വം പറയുന്നത് പോലെ ആദ്യത്തെ എക്സ്പ്രഷനും രണ്ടാമത്തെ എക്സ്പ്രഷനും ശരിയാണെങ്കിൽ.
സംഗ്രഹം
നിങ്ങൾക്ക് ആവശ്യമുള്ളത് കൃത്യമായി പൊരുത്തപ്പെടുത്തുന്നതിന് ചില വ്യവസ്ഥകൾക്ക് എല്ലായ്പ്പോഴും സംയുക്ത പദപ്രയോഗങ്ങൾ ആവശ്യമാണ്. താരതമ്യത്തിന്റെയും കോമ്പൗണ്ട് എക്സ്പ്രഷൻ ഓപ്പറേറ്റർമാരുടെയും ഉപയോഗം നിങ്ങൾ മനസ്സിലാക്കുമ്പോൾ, ചില ബുദ്ധിമുട്ടുള്ള സാഹചര്യങ്ങളെ അടിസ്ഥാനമാക്കി ടെക്സ്റ്റുകളോ സ്ട്രിംഗുകളോ ഫിൽട്ടർ ചെയ്യുന്നത് എളുപ്പമാകും.
ഈ ഗൈഡ് നിങ്ങൾക്ക് ഉപയോഗപ്രദമാണെന്ന് പ്രതീക്ഷിക്കുന്നു, എന്തെങ്കിലും ചോദ്യങ്ങൾ അല്ലെങ്കിൽ കൂട്ടിച്ചേർക്കലുകൾക്ക്, ഒരു അഭിപ്രായം ഇടാൻ എപ്പോഴും ഓർക്കുക, അതിനനുസരിച്ച് നിങ്ങളുടെ ആശങ്ക പരിഹരിക്കപ്പെടും.