जाग में दो क्षेत्र विभाजक (बृहदान्त्र और स्थान)


8

जब हम उनमें से एक स्थान है, तो हम awk कमांड में दो फ़ील्ड विभाजक कैसे निर्दिष्ट कर सकते हैं? मुझे लगता है कि यह एक अंतर्निहित if- स्थिति को awk में उपयोग करके किया जा सकता है, हालांकि मैं सटीक कमांड के बारे में निश्चित नहीं हूं।

नमूना फ़ाइल निम्नानुसार है:

cat test.txt
Swapnil Engineer 20000
Avinash:Doctor:30000
Dattu GovntJob 50000
Amol:Master:10000

मैं दूसरा कॉलम ($ 2) प्रिंट करना चाहता हूं। अपेक्षित उत्पादन है:

Engineer
Doctor
GovntJob
Master

जब मैंने अंतरिक्ष और बृहदान्त्र दोनों को फील्ड सेपरेटर के रूप में रखने की कोशिश की, तो यह एक सिंटैक्स त्रुटि के साथ विफल रहा:

awk -F[ :] '{print $2}' test.txt
awk: cmd. line:1: :]
awk: cmd. line:1: ^ syntax error

हम दो क्षेत्र विभाजकों का उपयोग कैसे कर सकते हैं और awk कार्यक्षमता का उपयोग कर सकते हैं?


यति के उत्तर के अलावा, यह याद रखें कि खोल को खाली करने के लिए तर्कों की सूची बनाने के लिए निर्विवाद व्हाट्सएप द्वारा विभाजित किया जाता है, इसलिए -F[ :](एक arg) के बजाय यह मिला -F[:और ]यह चार्ट काफी आसान है (सिंगल / डबल कोट्स के लिए वर्टिकल एरो पर ध्यान दें)।
एरियलको 14

धन्यवाद एरियलको, बहुत सराहना की!
स्वप्निल धुले

जवाबों:


13

आप सही रास्ते पर हैं!
बस आसपास के लापता उद्धरण जोड़ें [ :]:

awk -F'[ :]' '{print $2}' test.txt
Engineer
Doctor
GovntJob
Master
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.