বড় টেক্সট ফাইলের প্রথম লাইনটি সম্পাদনা করুন


16

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

ব্যাশে আমি এটি করতে পারি এমন কোনও সহজ উপায় আছে?


আপনি কেবল একটি পাঠ্য সম্পাদক ব্যবহার করতে পারবেন না এমন কোনও কারণ আছে?
ডাঙ্ফ

ফাইলটি খুব বড়, এটি এই মেশিনে আমার সর্বাধিক ভার্চুয়াল মেমরির চেয়ে 20 গুণ বেশি বড়।
লিংক

1
যথেষ্ট ন্যায্য। আমি এই ধারণার মধ্যে ছিলাম যে ভাল পাঠ্য সম্পাদকরা খুব বড় ফাইলগুলির সাথে ডিল করতে পারেন কারণ তারা কেবল মেমরির মধ্যে যতটা প্রয়োজন লোড করে, তবে অন্যান্য কয়েকটি প্রশ্ন পড়ার পরে মনে হয় তাদের বেশিরভাগেরই সমস্যা রয়েছে।
ডাঙ্ফ

@ ড্যাংফ ট্রু ... অদ্ভুত হতে পারে তবে কয়েক বছরের পুরানো এবং অপ্রচলিত "পাঠ্য সম্পাদক" (বা তথাকথিত) যেমন edlinএমএস-ডস বা edইউনিক্সের ক্ষেত্রে এই সমস্যাটি দেখা যায় নি তবে কেবল রেখা সম্পাদকদের ... র‌্যামে র‌্যাম এই সময়গুলি একটি দুর্লভ এবং মূল্যবান জিনিস ছিল এবং গিগাবাইটে একটি ফাইল আকার বিশ্বাস করা অসম্ভব কিছু ছিল! ;)
লরেন্ট

বিষয় পরিষ্কার করার জন্য;): আমি মিস করি না ed!!! তবে এই ক্ষেত্রে এটি বেশ উপযুক্ত হবে (নিশ্চিত নয় যে এটি এই আকারের কোনও ফাইল হ্যান্ডেল করতে পারে ...)
লরেন্ট

উত্তর:


22

আপনি lessকী সম্পাদনা করতে চান তা দেখতে ব্যবহার sedকরতে পারেন এবং পরিবর্তনগুলি করতে ব্যবহার করতে পারেন। পুরো ফাইলটি লোড না করে আপনি সম্পাদনা করুন।

আরেকটি উপায় হ'ল ফাইলটি বিভক্ত করা, সম্পাদনা করে আবার যোগদান করা:

split -b 10000k <file>

and to join:

cat xa* > <file>

সেড জন্য upvote।
atroon

ধন্যবাদ, ধন্যবাদ, বিভক্ত এবং যোগদান ঠিক আমি যা খুঁজছিলাম ছিল।
লিংক

অবশ্যই, সেডটি আরও ভাল কারণ এটি সহজেই পুরো ফাইলটি সন্ধান / প্রতিস্থাপন করতে পারে তবে যদি তাকে কেবল প্রথম লাইনটি পরিবর্তন করতে হয় তবে বিভাজনটি খুব খারাপ এবং দ্রুত হয় না।
লরেন্ট

4
সেডটি পুরো ফাইলটি চালাতে কয়েক ঘন্টা সময় নিতে পারত (যা কেবলমাত্র অর্ধেক টিবির নীচে), পরিবর্তনগুলি কেবল প্রথম লাইনেই ছিল, এটি বিভক্ত করা বুদ্ধিমান বলে মনে হয়।
লিংক

3

যদি আপনার পরিবর্তনটি লাইনের দৈর্ঘ্য পরিবর্তন করে, পুরো ফাইলটি আবার লেখা দরকার, উদাহরণস্বরূপ এসও-তে এই আলোচনা দেখুন । আপনার সম্ভবত ডেটাবেজে ডেটা সংরক্ষণ করা বিবেচনা করা উচিত।

এটি মাথায় রেখে আপনি সেড দিয়ে ফাইলটি সম্পাদনা করতে পারেন। প্রথম লাইনটি প্রতিস্থাপন করতে, (GNU সেড) এর মতো কিছু করুন:

< oldfile sed '1c\new_heading' > newfile
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.