ধরুন আপনার কাছে দুটি ক্ষেত্রের সাথে একটি সিএসভি ফাইল রয়েছে: আইডি এবং ইমেল। আপনার 2 টি ক্ষেত্র সহ অন্য ফাইল রয়েছে: ইমেল এবং নাম। ইমেলটিতে যোগ দেওয়া তিনটি ক্ষেত্রের সাথে আপনি কীভাবে একটি ফাইল তৈরি করতে পারেন?
ধরুন আপনার কাছে দুটি ক্ষেত্রের সাথে একটি সিএসভি ফাইল রয়েছে: আইডি এবং ইমেল। আপনার 2 টি ক্ষেত্র সহ অন্য ফাইল রয়েছে: ইমেল এবং নাম। ইমেলটিতে যোগ দেওয়া তিনটি ক্ষেত্রের সাথে আপনি কীভাবে একটি ফাইল তৈরি করতে পারেন?
উত্তর:
সংশোধন 3 :
আপনার অবশ্যই দুটি তালিকা ইমেলের বর্ণমালা অনুসারে বাছাই করতে হবে, তারপরে যোগ দিন। ইমেলটি ফিল্ড 1 এর 2 য় ক্ষেত্র এবং ফাইল 2 এর প্রথম ক্ষেত্র দেওয়া হয়েছে:
sort -t , -k 2,2 file1.csv > sort1.csv
sort -t , -k 1,1 file2.csv > sort2.csv
join -t , -1 2 -2 1 sort1.csv sort2.csv > sort3.csv
প্যারামিটার অর্থ
-t,: ',' হল ক্ষেত্র বিভাজক -কি 2,2: 2 য় ক্ষেত্রের অক্ষর বাছাই -কি 1,1: 1 ম ক্ষেত্রের অক্ষর বাছাই -1 2: ফাইল 1, 2 য় ক্ষেত্র -2 1: ফাইল 2, প্রথম ক্ষেত্র >: ফাইল আউটপুট
উত্পাদন করে
ইমেইল, আইডি, নাম ইমেইল, আইডি, নাম ...
বর্ণমালা অনুসারে ইমেল অনুসারে বাছাই করা।
মনে রাখবেন যে কোনও ফাইল থেকে যদি কোনও ইমেল অনুপস্থিত থাকে তবে এটি ফলাফল থেকে বাদ দেওয়া হবে।
সম্ভবত এটি ওভারকিল, তবে আপনি একটি ডাটাবেসে (যেমন ওপেনঅফিস বেস) দুই ধরণের সারণী হিসাবে আমদানি করতে পারেন এবং প্রতিবেদনটি পছন্দসই আউটপুট হিসাবে সংজ্ঞায়িত করতে পারেন।
যদি সিএসভি আমদানিতে সমস্যা হয় তবে একটি স্প্রেডশিট প্রোগ্রাম (যেমন ওপেনঅফিস ক্যালক) আমদানি করতে পারে। ফলস্বরূপ সহজেই ডাটাবেসে স্থানান্তর করা যায়।
ভবিষ্যতের রেফারেন্স হিসাবে আপনি এডাব্লুকে দিয়ে খেলা শুরু করতে চাইতে পারেন । এটি একটি খুব সহজ ছোট স্ক্রিপ্টিং ভাষা যা প্রতিটি * নিক্স সিস্টেমে কোনও না কোনও রূপে বিদ্যমান এবং এর একমাত্র মিশন হ'ল জীবন হ'ল স্ট্যান্ডার্ড ডিলিমিট টেক্সটুল ডাটাবেসের হেরফের। কয়েক লাইন নিক্ষেপ স্ক্রিপ্টের সাহায্যে আপনি কিছু খুব দরকারী জিনিস করতে পারেন। ভাষাটি ছোট এবং মার্জিত এবং আমি যে বিষয়ে সচেতন সেগুলির চেয়ে আরও ভাল ইউটিলিটি / জটিলতা অনুপাত রয়েছে।
গো ব্যবহার করুন: https://github.com/chrislusf/gleam
package main
import (
"flag"
"os"
"github.com/chrislusf/gleam"
"github.com/chrislusf/gleam/source/csv"
)
var (
aFile = flag.String("a", "a.csv", "first csv file with 2 fields, the first one being the key")
bFile = flag.String("b", "b.csv", "second csv file with 2 fields, the first one being the key")
)
func main() {
flag.Parse()
f := gleam.New()
a := f.Input(csv.New(*aFile))
b := f.Input(csv.New(*bFile))
a.Join(b).Fprintf(os.Stdout, "%s,%s,%s\n").Run()
}
সিএসভি ক্রাঙ্কার চেষ্টা করুন ।
এটি সিএসভি ফাইলগুলিকে এসকিউএল টেবিল হিসাবে নেয় এবং তারপরে এসকিউএল কোয়েরিগুলিকে অনুমতি দেয়, ফলস্বরূপ অন্য কোনও সিএসভি বা জেএসএন ফাইল।
আপনার ক্ষেত্রে, আপনি কেবল কল করবেন:
crunch -in tableA.csv tableB.csv -out output.csv \
"SELECT tableA.id, tableA.email, tableB.name
FROM tableA LEFT JOIN tableB USING (email)"
সরঞ্জামটির জাভা 8 বা তার পরে প্রয়োজন।
কিছু সুবিধা:
join
ভিত্তিক সমাধানগুলির চেয়ে বেশি সহজে ব্যবহার এবং বোঝা যায় ।দাবি অস্বীকার: আমি সেই সরঞ্জামটি লিখেছি। গুগল কোড বন্ধ হয়ে যাওয়ার পরে এটি বিচলিত হত, তবে আমি এটি পুনরুদ্ধার করেছিলাম এবং এটি ব্যবহার করার সাথে সাথে নতুন বৈশিষ্ট্যগুলি যুক্ত করেছি।
আপনি লিব্রেঅফিসের মতো স্প্রেডশিট প্রোগ্রাম সহ সিএসভি ফাইলটি পড়তে পারেন VLOOKUP()
এবং দ্বিতীয় ফাইলে নামের সন্ধানের জন্য ম্যাক্রো ব্যবহার করতে পারেন ।
আপনি সিএসভি ফাইলগুলিতে যোগদানের জন্য বিশেষভাবে ডিজাইন করা একটি সরঞ্জামও ব্যবহার করতে পারেন, যেমন https: //fileref مشين.com এ পাওয়া যায়
আমরা বর্তমানে যে অপারেশনগুলি সমর্থন করি তা হ'ল: সিএসভি ফাইলগুলিতে যোগদান করা। দুটি সিএসভি ফাইলে বহিরাগত, অভ্যন্তরীণ, বাম এবং ডান যোগদানের ক্রিয়াকলাপের এসকিউএল সমমানের সম্পাদন করা সম্ভব। ফাইলগুলির প্রতিটিটিতে একটি সংযুক্ত কী হিসাবে কোন কলামটি ব্যবহৃত হবে তা কনফিগারযোগ্য।