দু'জন ক্ষেত্র বিভাজক (কোলন এবং স্থান) অজানা


8

যখন তাদের মধ্যে একটি স্থান থাকে তখন আমরা কীভাবে 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[ :](এক আর্গ) পরিবর্তে এটি পেয়েছিল -F[:এবং ]এই চার্টটি বেশ সহজ (একক / ডাবল উদ্ধৃতিগুলির জন্য উল্লম্ব তীরগুলি নোট করুন)।
arielCo

ধন্যবাদ এরিয়েলকো, অনেক প্রশংসা!
স্বপ্নিল ধুলি

উত্তর:


13

তুমি কি সঠিক পথে আছো!
চারপাশে কেবল অনুপস্থিত উদ্ধৃতিগুলি জুড়ুন [ :]:

awk -F'[ :]' '{print $2}' test.txt
Engineer
Doctor
GovntJob
Master
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.