Monday, 15 August 2011

Using awk if condition together with in an array condition -


मेरा उदाहरण इस तरह चला जाता है:

  FILE_A एबीसी वसंत 14 60 FILE_B एबीसी   

मैं FILE_A प्रिंट करना चाहता हूं यदि पहले कॉलम मिलान करता है तो FILE_B पहले कॉलम & amp; amp; दूसरा स्तंभ "वसंत" है <पूर्व> awk 'एनआर == एफएनआर {एक [$ 1] = $ 1; अगला}; {If ($ 4 == "वसंत" और एक में $ 5) {प्रिंट $ 0} 'FILE_B FILE_A

यह ठीक काम करता है, लेकिन अगर मैं शर्त जोड़ना चाहता हूं यदि 60- (14-60) & gt; 0 मुझे यह नहीं मिल सकता है

मैंने कोशिश की यदि ($ 4 == "वसंत" और $ 4 - ($ 3- $ 4) & gt; 0 & amp; amp; amp; & amp; amp; amp; amp; $ 5 में) , लेकिन मैं कर सकता हूँ इसे काम न करें

मेरा प्रश्न यह है कि: "सरणी में" स्थिति के साथ awk अगर स्थितियां कैसे करें?

आप सही क्षेत्र संख्याओं का उपयोग नहीं कर रहे हैं और अपने बूलियन तर्क को अस्पष्ट छोड़कर, बस सही क्षेत्र संख्याओं और पैरामान्ज़ेज़ का उपयोग करें: <पूर्व> awk 'एनआर == एफएनआर {एक [$ 1]; अगला} (1 डॉलर में) & amp; amp; ($ 2 == "वसंत") & amp; amp; ($ 4- ($ 3- $ 4)) & gt; 0) 'FILE_B FILE_A

जाहिर है $ 4 - ($ 3- $ 4) कम किया जा सकता है!

No comments:

Post a Comment