কীভাবে দুটি সিএসভি ফাইলে যোগদান করবেন?


22

ধরুন আপনার কাছে দুটি ক্ষেত্রের সাথে একটি সিএসভি ফাইল রয়েছে: আইডি এবং ইমেল। আপনার 2 টি ক্ষেত্র সহ অন্য ফাইল রয়েছে: ইমেল এবং নাম। ইমেলটিতে যোগ দেওয়া তিনটি ক্ষেত্রের সাথে আপনি কীভাবে একটি ফাইল তৈরি করতে পারেন?


5
যোগদানের বিষয়ে আরও কিছু বিশদ (অর্থাত্ অভ্যন্তরীণ, বাহ্যিক, বাম)। 1 ম যে CSV ইমেল তালিকা আছে অভিন্ন দ্বিতীয় লিস্টে? বা একটি আরও থাকে?
হাইপারস্লাগ

আপনি যে ওএস ব্যবহার করছেন সেগুলির সাথে CSV ফাইলগুলির উদাহরণগুলি কাজে লাগবে?
ট্র্যাজি

আমি মনে করি 1 ম এবং 2 য় তালিকাটি অভিন্ন। আমি লিনাক্স ব্যবহার করছি। সাহায্য করুন!!! ধন্যবাদ !! :)
crst53

1
তথ্য কত বড়?
জোশুয়া 0

উত্তর:


24

সংশোধন 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, প্রথম ক্ষেত্র
>: ফাইল আউটপুট

উত্পাদন করে

ইমেইল, আইডি, নাম
ইমেইল, আইডি, নাম
...

বর্ণমালা অনুসারে ইমেল অনুসারে বাছাই করা।

মনে রাখবেন যে কোনও ফাইল থেকে যদি কোনও ইমেল অনুপস্থিত থাকে তবে এটি ফলাফল থেকে বাদ দেওয়া হবে।


2
এর চেয়ে সিএসভি আরও জটিল। ক্ষেত্রের বিভাজক উদাহরণস্বরূপ পালাতে পারে।
পিগার্ডিরিও

@ হাইপারস্লাগ আমি কি পুরো বাইরের যোগদান করতে পারি?
আবু শোয়েব

যদি আইডিতে কমা থাকে তবে সিএসভিতে উদ্ধৃত / উদ্ধৃত বাকী মিশ্রিত হলে এটি কাজ করবে না। এই সমাধানটি কেবলমাত্র এককালীন প্রক্রিয়াজাতকরণের জন্য ব্যবহার করুন যেখানে আপনি ফলাফলটি পরীক্ষা করেন। তবে আমি এটি একটি উত্পাদন-স্তরের স্ক্রিপ্টের জন্য ব্যবহার না করার পরামর্শ দিচ্ছি।
ওন্দ্র ŽiŽka

25

সিএসভিকিট ব্যবহার করুন :

csvjoin -c email id_email.csv email_name.csv

অথবা

csvjoin -c 2,1 id_email.csv email_name.csv

4
কেন এটি শীর্ষ উত্তর নয়?
অ্যালেক্স

দুর্দান্ত সরঞ্জাম এমনকি স্বীকৃত, আমার ফাইলগুলির একটিতে "," ডিলিমিটারের চেয়ে আলাদা রয়েছে।
ডি_কে

6

সম্ভবত এটি ওভারকিল, তবে আপনি একটি ডাটাবেসে (যেমন ওপেনঅফিস বেস) দুই ধরণের সারণী হিসাবে আমদানি করতে পারেন এবং প্রতিবেদনটি পছন্দসই আউটপুট হিসাবে সংজ্ঞায়িত করতে পারেন।

যদি সিএসভি আমদানিতে সমস্যা হয় তবে একটি স্প্রেডশিট প্রোগ্রাম (যেমন ওপেনঅফিস ক্যালক) আমদানি করতে পারে। ফলস্বরূপ সহজেই ডাটাবেসে স্থানান্তর করা যায়।


4

ভবিষ্যতের রেফারেন্স হিসাবে আপনি এডাব্লুকে দিয়ে খেলা শুরু করতে চাইতে পারেন । এটি একটি খুব সহজ ছোট স্ক্রিপ্টিং ভাষা যা প্রতিটি * নিক্স সিস্টেমে কোনও না কোনও রূপে বিদ্যমান এবং এর একমাত্র মিশন হ'ল জীবন হ'ল স্ট্যান্ডার্ড ডিলিমিট টেক্সটুল ডাটাবেসের হেরফের। কয়েক লাইন নিক্ষেপ স্ক্রিপ্টের সাহায্যে আপনি কিছু খুব দরকারী জিনিস করতে পারেন। ভাষাটি ছোট এবং মার্জিত এবং আমি যে বিষয়ে সচেতন সেগুলির চেয়ে আরও ভাল ইউটিলিটি / জটিলতা অনুপাত রয়েছে।


পার্ল বিভিন্ন উপায়ে অর্কের উত্তরাধিকারী।
পুনরায় পোস্টার

আমার কাছে যতদূর জানা যায় ঠিক তত পরিমাণে উদ্ধৃতি এবং অব্যাহতি পরিচালনা করা যায় না (যেমন, একটি,-প্রস্তুত সিএসভি ফাইলের সাথে ডিল করা)। আপনার যদি এটির প্রয়োজন হয় তবে একটি ডেডিকেটেড সিএসভি হ্যান্ডলিং লাইব্রেরি ব্যবহার করা সহজ; এগুলি বহু ভাষার জন্য বিদ্যমান।
পুনরায় পোস্টার

0

গো ব্যবহার করুন: 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()

}

0

সিএসভি ক্রাঙ্কার চেষ্টা করুন

এটি সিএসভি ফাইলগুলিকে এসকিউএল টেবিল হিসাবে নেয় এবং তারপরে এসকিউএল কোয়েরিগুলিকে অনুমতি দেয়, ফলস্বরূপ অন্য কোনও সিএসভি বা জেএসএন ফাইল।

আপনার ক্ষেত্রে, আপনি কেবল কল করবেন:

crunch -in tableA.csv tableB.csv -out output.csv \
   "SELECT tableA.id, tableA.email, tableB.name 
    FROM tableA LEFT JOIN tableB USING (email)"

সরঞ্জামটির জাভা 8 বা তার পরে প্রয়োজন।

কিছু সুবিধা:

  • আপনি সত্যিকার অর্থেই CSV সমর্থন পাবেন, "আসুন ডেটা সঠিক বলে ধরে নিই" না।
  • আপনি একাধিক কীতে যোগ দিতে পারেন।
  • joinভিত্তিক সমাধানগুলির চেয়ে বেশি সহজে ব্যবহার এবং বোঝা যায় ।
  • আপনি 2 টিরও বেশি সিএসভি ফাইল একত্রিত করতে পারেন।
  • আপনি এসকিউএল এক্সপ্রেশন দ্বারা যোগ দিতে পারেন - মান একই হতে হবে না।

দাবি অস্বীকার: আমি সেই সরঞ্জামটি লিখেছি। গুগল কোড বন্ধ হয়ে যাওয়ার পরে এটি বিচলিত হত, তবে আমি এটি পুনরুদ্ধার করেছিলাম এবং এটি ব্যবহার করার সাথে সাথে নতুন বৈশিষ্ট্যগুলি যুক্ত করেছি।


0

আপনি লিব্রেঅফিসের মতো স্প্রেডশিট প্রোগ্রাম সহ সিএসভি ফাইলটি পড়তে পারেন VLOOKUP()এবং দ্বিতীয় ফাইলে নামের সন্ধানের জন্য ম্যাক্রো ব্যবহার করতে পারেন ।


7
ফাইল এক্সটেনশন এক্সএলএক্সএক্স মাইক্রোসফ্ট এক্সেলকে বোঝায় এবং আমার কাছে মনে হয় VLOOKUP এর কাজটি করে। এই প্রশ্নটি লিনাক্সের সাথে ট্যাগ করা। মাইক্রোসফ্ট এক্সেল লিনাক্সের জন্য উপলব্ধ?
পিটার মর্টেনসেন

এখন LibreOffice এর VLOOKUPও রয়েছে ।
ক্রিশ্চিয়ান সিউপিতু

-1

আপনি সিএসভি ফাইলগুলিতে যোগদানের জন্য বিশেষভাবে ডিজাইন করা একটি সরঞ্জামও ব্যবহার করতে পারেন, যেমন https: //fileref مشين.com এ পাওয়া যায়

আমরা বর্তমানে যে অপারেশনগুলি সমর্থন করি তা হ'ল: সিএসভি ফাইলগুলিতে যোগদান করা। দুটি সিএসভি ফাইলে বহিরাগত, অভ্যন্তরীণ, বাম এবং ডান যোগদানের ক্রিয়াকলাপের এসকিউএল সমমানের সম্পাদন করা সম্ভব। ফাইলগুলির প্রতিটিটিতে একটি সংযুক্ত কী হিসাবে কোন কলামটি ব্যবহৃত হবে তা কনফিগারযোগ্য।


রেফারেন্স লিঙ্ক (গুলি) থেকে উত্তরের প্রয়োজনীয় অংশগুলি উদ্ধৃত করুন, কারণ লিঙ্কযুক্ত পৃষ্ঠা (গুলি) পরিবর্তন হলে উত্তরটি অবৈধ হতে পারে।
ডেভিডপস্টিল

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