একাধিক ছোট ফাইলগুলিতে ফাইল বিভক্ত করুন, নিউলাইন প্রতীক দ্বারা পৃথক


13

এমন কোনও ইউটিলিটি আছে যা নতুন লাইনের প্রতীক দিয়ে ফাইলকে বিভক্ত করে? উদাহরণস্বরূপ যদি কোনও ফাইলের মধ্যে নিম্নলিখিত লাইন থাকে,

aa
bbb
cccc

যদি আমি এটি 3 টি ফাইলে বিভক্ত করতে চাই তবে পছন্দসই আউটপুটটি হ'ল:

aa, bbbএবং cccc(3 ভিন্ন ফাইলের মধ্যে)

আমি ইতিমধ্যে splitকমান্ডটি যাচাই করেছি , এটি কেবল ফাইল আকার দ্বারা ফাইল কেটে দেয়, আমি যা চাই তা নয়।

আমি যদি নিজে কোনও ইউটিলিটি না লিখে থাকি তবে কি কোনও মানক সরঞ্জাম ব্যবহার করার আছে?


ফাইলের নাম কী হওয়া উচিত?
রাহুল পাতিল

আপনি প্রতিটি লাইনের ফাইল তৈরি করতে চান? আমি সঠিক?
রাহুল পাতিল

উত্তর:


14

আমি যদি কিছু মিস করছি না, splitযদি আপনি -lসুইচ ব্যবহার করেন তবে লাইন দিয়ে বিভক্ত হবে:

   -l, --lines=NUMBER
          put NUMBER lines per output file

সুতরাং

split -l 1 inputfile

আপনি যা চান তা করা উচিত


4
awk '{print > $0".txt" }'  inputfile

ইনপুটফাইলে এই লাইনগুলির লিখিত সামগ্রীর (নামের সাথে একটি .txtএক্সটেনশন সহ) নামকরণের জন্য অনন্য লাইনের জন্য একটি ফাইল তৈরি করবে । তবে সাবধান থাকুন যখন সমবর্তী খোলার ফাইলগুলির সীমা পৌঁছে যাবে তখন কিছু awkবাস্তবায়ন ব্যর্থ হবে।

অথবা

awk '{f = "output_file." NR; print $0 > f; close(f)}' inputfile

সংখ্যাযুক্ত আউটপুট ফাইল আছে।


আপনি () আউটপুট ফাইলটি লিখিত হওয়ার পরে বন্ধ করতে চাইতে পারেন, না হলে আপনি সর্বাধিক সংখ্যক খোলার ফাইল সীমাতে সর্বাধিক বিশ্রী বাস্তবায়ন সহ সীমাতে চলে যাবেন।
স্টাফেন শেজেলাস

এটা সম্পর্কে সচেতন না .. আপনি আমার জন্য এটি করতে পারেন? ধন্যবাদ ..
রাহুল পাতিল

3
A=0
while IFS= read -r LINE ; do
  printf '%s\n' "$LINE" > newfile$A
  (( A++ ))
done < "$INPUTFILE"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.