যে জন্য ডেডিকেটেড টুল আছে: paste
। এটি প্রথম ফাইল থেকে প্রতিটি ফাইলের সাথে দ্বিতীয় ফাইল থেকে সংশ্লিষ্ট লাইনটি সংযুক্ত করে; আপনি অযাচিত কলামগুলি এর আগে বা পরে অপসারণ করতে পারেন। উদাহরণস্বরূপ, ধরে নিলেন যে আপনার কলামগুলি ট্যাব-বিস্মৃত হয়েছে:
paste file1.txt file2.txt | cut -f 1,2,3,6
Ksh / bash / zsh প্রক্রিয়া বিকল্পের উপর নির্ভর করে উভয় ফাইলকে প্রাক-ফিল্টার করার একটি উপায় এখানে।
paste <(<file1.txt sed 's/[[:space:]][[:space:]]*[^[:space:]]*$//') \
<(<file1.txt sed 's/^[^[:space:]]*[[:space:]][[:space:]]*//')
আওকটি প্রাথমিকভাবে একবারে একটি ফাইল প্রক্রিয়াকরণ করার জন্য প্রস্তুত, তবে আপনি getline
সমান্তরালে অন্য ফাইল থেকে পড়তে কল করতে পারেন।
awk '
BEGIN {file2=ARGV[2]; ARGV[2]="";}
{$0 = $0 ORS getline(); print $1, $2, $3, $6;}
' file1.txt file2.txt
এখন পর্যন্ত আমি ধরে নিয়েছি যে আপনি ফাইল 1 এর লাইন 1 সাথে ফাইল 2 এর লাইন 1, ফাইল 2 এর 2 লাইন 2 এর সাথে 2 ফাইলটি 2 এর লাইন 2 এর সাথে মিল করতে চান, যদি আপনি কোনও কলামের বিষয়বস্তু মেলাতে চান তবে এটি একটি সম্পূর্ণ ভিন্ন বিষয়। join
আপনি যে কলামটি মেলাতে চান তা বাছাই করা হয়েছে এমন কাজটি করবে।
pr -m -t -s\ File1.txt File2.txt | gawk '{print $1,$2,$3, $6}' > File3.txt