বাশ-এ লাইন দিয়ে দুটি ফাইল কীভাবে মার্জ করা যায়


178

আমার দুটি টেক্সট ফাইল রয়েছে, তাদের প্রত্যেকের মধ্যে লাইনের মতো একটি তথ্য রয়েছে

file1.txt            file2.txt
----------           ---------
linef11              linef21
linef12              linef22
linef13              linef23
 .                    .
 .                    .
 .                    .

আমি প্রাপ্ত করার জন্য ব্যাশ স্ক্রিপ্ট ব্যবহার করে লাইনগুলির মাধ্যমে এইগুলি ফাইলগুলি লাইনগুলিতে মার্জ করতে চাই:

fileresult.txt
--------------
linef11     linef21
linef12     linef22
linef13     linef23
 .           .
 .           .
 .           .

বাশে এটি কীভাবে করা যায়?

উত্তর:


272

আপনি ব্যবহার করতে পারেন paste:

paste file1.txt file2.txt > fileresults.txt

আমি যদি একটি ডিলিমিটার ব্যবহার করতে চাই তবে এটি কীভাবে কাজ করবে?
তেজা

8
@ এসডিক্টিক্টpaste -d "\n" * > results.txt
ওস্তাপ মালিউভানচুক

pasteএকটি ট্যাব সঙ্গে প্রতিটি কলামের আলাদা হবে যদি না আপনার সাথে ওভাররাইড -dবিকল্প, তাই আপনি ভালো কিছু ব্যবহার করতে পারেন awk, sed, ইত্যাদি ... প্রতিটি লাইনে ফরম্যাট করতে। উদাহরণ: paste file1.txt file2.txt | awk '{printf "%-61s | %s\n", $1,$2}'... এটি diff --side-by-sideআউটপুটটি নকল করে )
ইজ্মির রামিরেজ ২

দুর্দান্ত উত্তর। কাজের জন্য তৈরি সরঞ্জামটি ব্যবহার করুন!
টনি

4
paste -d ""ডিলিমিটার, স্পেস ছাড়াই লাইনগুলি সংযুক্ত করতে
ভিক্টোরিয়া স্টুয়ার্ট

20

এখানে নন-পেস্ট পদ্ধতি রয়েছে

awk

awk 'BEGIN {OFS=" "}{
  getline line < "file2"
  print $0,line
} ' file1

সজোরে আঘাত

exec 6<"file2"
while read -r line
do
    read -r f2line <&6
    echo "${line}${f2line}"
done <"file1"
exec 6<&-

11

অনুসরণ করার চেষ্টা করুন।

pr -tmJ a.txt b.txt > c.txt

1
এছাড়াও, বিভাজক পরিবর্তন করতে চাইলে -s বিকল্পটি ব্যবহার করুন। (+1)
ব্যবহারকারীর বন্ধুত্বপূর্ণ

জে বিকল্পটি ম্যাকোস মোজভেতে কাজ করে না তবে আপনার আদেশটি পুরোপুরি কার্যকর করে। ধন্যবাদ।
হাঁস

8

চেক

man paste

সম্ভাব্য কিছু কমান্ড অনুসরণ করে যেমন untabifyবাtabs2spaces


ইমাসে এমএক্স প্রতিস্থাপনের স্ট্রিংগুলি ট্যাবগুলি গ্রহণ করবে, সম্ভবত ভিম এবং সম্ভবত কিছু অন্যান্য পাঠ্য সম্পাদক এটিও করতে পারেন।
বেন

7
ট্যাব ব্যতীত পৃথককারী নির্দিষ্ট করতে -d বিকল্পটি ব্যবহার করুন
পেড্রু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.