मैं इस सवाल का हल निकालने की कोशिश कर रहा था । मैं awkसमाधान के लिए उपयोग करना चाहता था ।
मेरी इनपुट फ़ाइल कुछ इस तरह है।
-bash-3.2$ cat file
ramesh
ramesh_venkat
ramesh3_venkat3
ramesh4
ramesh5
venkat
venkat3
venkat4
मैंने नीचे के awkबाद दूसरे मान निकालने के लिए कमांड का उपयोग किया _।
awk -F "_" '{print $2}' file
हालाँकि, यद्यपि उपरोक्त कमांड सही मानों को प्रिंट करता है, मुझे अपने आउटपुट में रिक्त लाइनें मिल रही हैं। मेरे 2 सवाल हैं।
प्रश्न 1
मैं कैसे उत्पादन में रिक्त लाइनों तो निकाल सकते हैं कि मैं केवल मिल venkatऔर venkat3उत्पादन में?
यदि मैं अपने printfबजाय का उपयोग करता printहूं awk, तो मुझे venkatvenkat3आउटपुट के रूप में मिलता है जो मैं हासिल नहीं करना चाहता था। मुझे आउटपुट चाहिए,
venkat
venkat3
प्रश्न 2
एक सहयोगी सरणी या कुछ के रूप में उन मूल्यों का उपयोग करते हुए , मैं कैसे पता लगा सकता हूं कि क्या मूल्य वास्तव में $1कॉलम में होते हैं ?
मैं कुछ हासिल करना चाहता था,
awk -F "_" '$2==1{print $1}' file
संपादित करें
मैंने awkस्टीफन के समाधान पर ध्यान नहीं दिया । क्या यह वही काम कर रहा है जिसका मैंने उल्लेख किया था?
awkयही काम नहीं कर रहे हैं। आपका दृष्टिकोण मानता है कि एक शब्द केवल दूसरे में समाहित हो सकता है अगर वह अलग हो जाए_। जबकि यह ओपी के उदाहरण के लिए सच है, पोस्ट किए गए सभी उत्तर भीdoglionकेवल और केवल मामलों की तरह ही निपटते हैंdog_lion।