एकल उद्धरण के awk विभाजक का उपयोग कैसे करें?


11

निम्न की तरह SQL आउटपुट से जानकारी खींचने के लिए मैं awk का उपयोग करना चाहूंगा:

(गणना (अलग सर्वरक्लास) = '2')

और संख्या निकालने की जरूरत है, जो इस उदाहरण में 2 है।

मैं निम्नलिखित की तरह कुछ करना चाहता हूं, लेकिन यह पता नहीं लगा सकता कि एकल बोली से कैसे बचा जाए:

<sqlCommand> | awk 'BEGIN{FS="'"}{print $2}'

मैं जाग में अपने क्षेत्र विभाजक के रूप में एक शाब्दिक एकल उद्धरण कैसे प्राप्त कर सकता हूं?

जवाबों:


14

एकल-उद्धृत स्ट्रिंग में एक एकल उद्धरण वर्ण सम्मिलित करने के लिए, वर्तमान स्ट्रिंग को समाप्त करें, स्ट्रिंग को फिर से लिखें "'"या \'शुरू करें।

आपके उदाहरण में, वह है

awk 'BEGIN{FS="'"'"'"}{print $2}'

या

awk 'BEGIN{FS="'\''"}{print $2}'

हालांकि, -Fक्षेत्र विभाजक को निर्दिष्ट करने के लिए स्विच का उपयोग करने से अधिक सुपाठ्य कोड होगा:

awk -F\' '{print $2}'

क्यों आप से शैली को अद्यतन किया -F"'"करने के लिए -F\'?
विलियमके

1
कोई अच्छा कारण नहीं। दोनों काम करते हैं, लेकिन पहले मेरे स्वाद के लिए बहुत सारे उद्धरण हैं।
डेनिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.