मेरे पास 20 000 जांच के साथ एक डेटासेट है, वे दो कॉलम, 21nts प्रत्येक में हैं। इस फ़ाइल से मुझे उन पंक्तियों को निकालने की आवश्यकता है जिनमें प्रोब 1 कॉलम में अंतिम न्यूक्लियोटाइड प्रोब 2 कॉलम में अंतिम न्यूक्लियोटाइड से मेल खाता है। अब तक मैंने एडब्ल्यूके (सबस्ट्र) फ़ंक्शन की कोशिश की, लेकिन अपेक्षित परिणाम नहीं मिला। यहाँ एक लाइनर मैंने कोशिश की है:Awk: एक पंक्ति में दो तारों की तुलना कैसे करें
awk '{if (substr($2,21,1)==substr($4,21,1)){print $0}}'
एक अन्य विकल्प कॉलम 2 और 4 (awk '$2~/[A-Z]$/
) के अंतिम वर्ण एंकर करने के लिए होगा, लेकिन मैं एक तरह से regex का उपयोग कर दो कॉलम में जांच मेल करने के लिए नहीं मिल रहा। सभी सुझावों और टिप्पणियों की बहुत सराहना की जाएगी। डेटासेट के
उदाहरण:
Probe 1 Probe 2
4736 GGAGGAAGAGGAGGCGGAGGA A GGAGGACGAGGAGGAGGAGGA
4737 GGAGGAAGAGGAGGGAGAGGG B GGAGGACGAGGAGGAGGAGGG
4738 GGAGGATTTGGCCGGAGAGGC C GGAGGAGGAGGAGGACGAGGT
4739 GGAGGAAGAGGAGGGGGAGGT D GGAGGACGAGGAGGAGGAGGC
4740 GGAGGAAGAGGAGGGGGAGGC E GGAGGAGGAGGACGAGGAGGC
वांछित उत्पादन:
4736 GGAGGAAGAGGAGGCGGAGGA A GGAGGACGAGGAGGAGGAGGA
4737 GGAGGAAGAGGAGGGAGAGGG B GGAGGACGAGGAGGAGGAGGG
4740 GGAGGAAGAGGAGGGGGAGGC E GGAGGAGGAGGACGAGGAGGC
आपके द्वारा वर्णित 'awk' उदाहरण पहले से ही वांछित आउटपुट उत्पन्न करता है जिसे आपने वर्णित किया है। आपको और क्या चाहिए? – janos
यह वास्तव में काम करता है, भ्रम के लिए खेद है। – Bio21