awk - উভয় ফাইল থেকে ফাইল এবং মুদ্রণ লাইন তুলনা করুন


0

আমি দুটি ফাইলের কলাম $ 2 এবং কলাম 1 compare তুলনা করার একটি উপায় খুঁজছি এবং যদি সেগুলি একই হয় তবে প্রথম ফাইল থেকে সমস্ত ফাইলটি দ্বিতীয় ফাইল থেকে কলাম $ 2 সহ মুদ্রণ করুন।

file_1.txt

apple    tree    5
great    see     10
see      apple   3
tree     bee     11
make     change  2

file_2.txt

apple    5.21      
around   6.21      
great    2         
bee      1         
see      7.43      
tree     3         

ফলাফলটি দেখতে হবে:

apple    tree    5    3     
great    see     10   7.43
see      apple   3    5.21
tree     bee     11   1   

আমি চেষ্টা করেছিলাম

awk 'NR==FNR{a[$2];next} ($1 in a) {print}' file_1.txt file_2.txt > output.txt

যা স্পষ্টতই কেবল ফাইল_2.txt এর সাথে মিলে যাওয়া লাইনগুলি মুদ্রণ করে। তাহলে আমি কীভাবে 1 ম ফাইলটির কলামগুলির জন্য মুদ্রণ বিবৃতি যুক্ত করব?

আমি আরও কলামে একটি অ্যারেতে পড়ার চেষ্টা করেছি

awk 'NR==FNR{a[$2];b[$1];c[$3];next} ($1 in a) {print a, b c}' file_1.txt      file_2.txt > output.txt

যা স্পষ্টতই ভুল;)

সাহায্য খুব প্রশংসা করা হয়।


খালি কি? অন্য কোন ল্যাং?
জ্যাকব Vlijm

আমি অন্য ভাষাগুলির কিছু মনে করি না, যতক্ষণ না এটি আউটপুট তৈরি করে;) তাই প্রতিটি সাহায্যের প্রশংসা করা হয়
দানি_নিমান

উত্তর:


2

কেমন

$ awk 'NR==FNR {a[$1]=$2; next} $2 in a {print $0, a[$2]}' OFS='\t' file_2.txt file_1.txt 
apple  tree   5   3
great  see    10  7.43
see    apple  3   5.21
tree   bee    11  1

দুর্দান্ত, এটাই! তোমাকে অনেক ধন্যবাদ! এটা উপযুক্ত!
দানি_নেইমান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.