দুটি ফাইল এক সাথে এক কলাম একত্র করা হচ্ছে


12

আমার কাছে নীচের ফর্ম্যাটটির 2 টি বড় ফাইল (3000 কলাম, 15000 সারি) রয়েছে

ফাইল 1 (ট্যাব দ্বারা পৃথক):

1/0 0/0 0/0
0/0 1/1 0/0
1/1 0/1 0/0

ফাইল 2 (ট্যাব দ্বারা পৃথক):

3 5 2
1 7 10
3 4 3

আমি প্রতিটি ফাইলের প্রথম কলাম থেকে ":" বিভাজকের সাথে মানগুলি একত্রিত করতে চাই, তারপরে দ্বিতীয়, তৃতীয়, ইত্যাদি কলামগুলিতে চলে যেতে চাই। পছন্দসই আউটপুট (ট্যাব দ্বারা পৃথক):

1/0:3 0/0:5 0/0:2
0/0:1 1/1:7 0/0:10
1/1:3 0/1:4 0/0:3

দক্ষতা সমালোচনা নয়, সুতরাং যে কোনও ভাষা ভাল। যদি এর আগে জিজ্ঞাসা করা হয় তবে আমি ক্ষমা চাই।

উত্তর:


14

এটার মতো কিছু? আপনার নমুনা ডেটা নিয়ে কাজ করেছেন:

paste  file{1,2} | awk '{for (i=1;i<=NF/2; i++){printf "%s:%s\t",$i,$(NF/2+i)};printf "\n"}'
1/0:3   0/0:5   0/0:2
0/0:1   1/1:7   0/0:10
1/1:3   0/1:4   0/0:3

2
আমি পেস্ট পছন্দ। +1
গ্লেন জ্যাকম্যান

যথেষ্ট পরিমাণে @glennjackman; আমি আমার প্রতিক্রিয়া সংশোধন করব।
Tink

হ্যাঁ! নিখুঁতভাবে কাজ করেছেন! দ্রুত সাড়া দেওয়ার জন্য ধন্যবাদ।
জন ডিগনার

9
awk '{
    getline f2 < "file2"
    split(f2, a)
    for (i=1; i<=NF; i++) 
        printf "%s:%s\t", $i, a[i]
    print ""
}' file1

নিখুঁতভাবে কাজ করেছেন, যদিও আমি টিঙ্কের প্রতিক্রিয়ার সরলতাকে পছন্দ করি।
জন ডিগনার

1
@ জোনডেগনার তারপরে যদি উত্তরটি (বা এটির) আপনার সমস্যার সমাধান করে থাকে তবে দয়া করে কিছুক্ষণ সময় নিয়ে যান এবং বামে চেক চিহ্নটিতে ক্লিক করে এটি গ্রহণ করুন। এটি প্রশ্নটিকে উত্তর হিসাবে চিহ্নিত করবে এবং স্ট্যাক এক্সচেঞ্জের সাইটগুলিতে ধন্যবাদ প্রকাশ করার উপায়।
টেরডন

6

কিছুটা ভিন্ন পদ্ধতি:

paste -d: <(xargs -n1 <file1) <(xargs -n1 <file2) | xargs -n 3

আমি এটিকে উন্নত করেছিলাম, তবে কেবল বুঝতে পেরেছি যে -n 3 অংশ কেবলমাত্র সরবরাহিত নমুনায় কাজ করে। আসল ডেটা সমন্বিত করতে কলামের গণনা পরিবর্তন করতে হবে।
Tink

স্পষ্টতই, হ্যাঁ আপনি যেমন কিছু দিয়ে কলাম গণনা গণনা করতে পারে head -n1 | wc -w
মাইকেল Vehrs

হেহ। }: যে সাড়া আপনার জন্য বোঝানো হয় না, আমি ভাল করেই জানেন কিভাবে এটি প্রায় কাজ ... মাত্র একটি ব্যাখ্যা যে আপনার উত্তর এক কম ভোট দিন থাকা উচিত আছি
Tink
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.