আমি এই প্রশ্নের সমাধান বের করার চেষ্টা করছিলাম । আমি 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
।