উত্তর:
তোমার থেকেও বেশি দরকার হবে cat
হিসাবে বর্ণনা কমান্ড এখানে :
বলুন আপনি 3 যে CSV ফাইল আছে: file1.csv
, file2.csv
, এবং file3.csv
এবং তাদের যোগ দিতে চান bigfile.csv
এবং আপনার হেডার সবসময় (শুধুমাত্র) প্রথম লাইন, তারপর ব্যবহার
হয় (প্রথম ফাইল "file1.csv" থেকে শিরোনাম রাখুন):
cat file1.csv <(tail +2 file2.csv) <(tail +2 file3.csv) > bigfile.csv
বা ("ফাইল" দিয়ে শুরু হওয়া সমস্ত ফাইল থেকে শিরোনাম সরান):
awk 'FNR > 1' file*.csv > bigfile.csv
tail -n+2
, tail +2
কাজ করবে না
আমি শীর্ষস্থানীয় উত্তরের সাথে একমত তবে আমি এটি নিম্নলিখিত দৃশ্যের সাথে বাড়ানোর পরামর্শ দিই (যেমন আমি মন্তব্য করতে পারি না):
আপনি যদি আউটপুট ফাইলটিতে শিরোনাম (একবার) থাকতে চান তবে সঠিক স্ক্রিপ্টটি হ'ল:
awk '(NR == 1) || (FNR > 1)' file*.csv > bigfile.csv
এফএনআর একটি একক ফাইলে প্রক্রিয়াজাত রেকর্ডের সংখ্যা উপস্থাপন করে। এবং এনআর এটি বিশ্বব্যাপী প্রতিনিধিত্ব করে, তাই প্রথম লাইনটি গৃহীত হবে এবং বাকিগুলি আগের মতো উপেক্ষা করা হবে।
আপনি { ; }
প্রক্রিয়া বিকল্প ( <()
) পরিবর্তে একটি গ্রুপ কমান্ড ( ) ব্যবহার করতে পারেন :
{ head -n1 file1.csv; for f in file*.csv; do tail -n+2 "$f"; done; } > new.csv
এটি খালি লাইন ( \r\n
) দিয়ে ফাইলগুলি শেষ না হওয়া পর্যন্ত এটি সিআরএলএফ লাইন শেষের সাথেও কাজ করে ।
পিসিক্স 1003.1-2001 দ্বারা কেবলমাত্র মাথা এবং লেজের সংখ্যাগুলির সংস্করণগুলি অচল করে দেওয়া হয়েছিল এবং এর ফলে কিছু পরিবেশে সতর্কতা দেখা যায়।
চ্যানিং স্ক্রিপ্টের জন্য বৃহত সিএসভিতে অভিন্ন কলামগুলির সাথে দুটি বৃহত সিএসভি সংযুক্ত করার প্রয়োজন (ডেটাটির অনন্য আইডি নেই)।
প্রথমে দ্বিতীয় সিএসভি থেকে শিরোনাম নিয়েছে
awk 'FNR > 1' file2.csv > file2_noheading.csv
এরপরে, নিম্নলিখিতটির মাধ্যমে সম্মিলিত
cat file1.csv file2_noheading.csv > newfile.csv
উপরের কমান্ড সিকোয়েন্সটি ব্যবহার করার ফলে একটি ফাইলের চেহারা দেখতে পাওয়া গেল:
header,of,csv1
contents,of,csv1
==> csv2.csv
contents,of,csv2
একটি যথাযথ সিএসভি তৈরি করতে, একটি শিরোনাম লাইন এবং সমস্ত প্রাসঙ্গিক মান সহ, আমি নিম্নলিখিত sed
জ্বলনিকে কাজে লাগিয়েছি ...sed -ie "/^$/d;/^==>/d" bigfile.csv
আপনার কাছে যদি এক টন ফাইল থাকে তবে সহজে সমাধান:
awk 'FNR > 1' *.csv > merged.csv
বড় ফাইলটি সম্পাদনা করতে আবার ফিরে আসুন এবং শিরোনামটি আবার ফিরে।
awk 'FNR > 1' file*.csv > bigfile.csv
? এটা না!
file
cat <(cat file1.csv) <(tail +2 file2.csv) <(tail +2 file3.csv) > bigfile.csv