আমাকে 2 জিবি এসকিউএল ডাম্পের প্রথম 42 টি লাইন সরিয়ে ফেলতে হবে।
আমি জানি যে আমি প্রথম লাইনগুলি ব্যবহার করে দেখতে পারি:
head -n 44 dump.sql
তবে এগুলি সম্পাদনা বা অপসারণের কি কোনও উপায় আছে?
আমাকে 2 জিবি এসকিউএল ডাম্পের প্রথম 42 টি লাইন সরিয়ে ফেলতে হবে।
আমি জানি যে আমি প্রথম লাইনগুলি ব্যবহার করে দেখতে পারি:
head -n 44 dump.sql
তবে এগুলি সম্পাদনা বা অপসারণের কি কোনও উপায় আছে?
উত্তর:
আপনি যদি 43 তম থেকে লাইনগুলি দেখতে চান তবে আপনি ব্যবহার করতে পারেন
tail -n +43 dump.sql
+
সাইন গুরুত্বপূর্ণ - ছাড়াই এটি, tail
প্রিন্ট হবে গত 43 লাইন পরিবর্তে। বিকল্পভাবে 'সেড' দিয়ে
sed 1,42d dump.sql
আপনি যদি আসল ফাইলটি থেকে প্রথম 42 টি লাইন মুছে ফেলতে চান তবে আপনি -i
বিকল্পটি পরিবর্তন করে স্থান পরিবর্তন করতে পারেন
sed -i 1,42d dump.sql
sed -i 1,50000000d 17GigFile
একটি টেম্প ফাইল তৈরি করে যা sedXYZ
আরও অনেক গিগাবাইট ব্যবহার করে। টেম্প ফাইলগুলি ছাড়া কোনও পন্থা আছে?
tail -n +43
এবং এর মধ্যে পার্থক্য কী head -n 44
?
এটি সবচেয়ে সহজ বলে মনে হচ্ছে:
sed '1,42d' test.sql > test2.sql
টেস্ট.এসকিউএল থেকে 1-42 লাইনগুলি সরিয়ে ফেলুন এবং test2.sql হিসাবে সংরক্ষণ করুন
আপনি এক্স মোডে ভিম ব্যবহার করতে পারেন:
ex -s -c '1d42|x' dump.sql
1
প্রথম লাইনে যান
42
42 লাইন নির্বাচন করুন
d
মুছে ফেলা
x
সংরক্ষণ করেন এবং বন্ধ করেন
দুঃখিত, আমি এখনই আপনাকে প্রকৃত কোড দিতে পারি না। যাইহোক, এর লাইন বরাবর কিছু দেখার চেষ্টা করুন
tail -n arcv(`wc -l`) -44
এটি করা উচিত (একবার সঠিকভাবে ফর্ম্যাট করা) ফাইলের লাইন সংখ্যা গণনা (ডাব্লুসিএল-এল), এটি থেকে 44 বিয়োগ করুন (-44) এবং তারপরে ফাইলটির 45 তম লাইন দিয়ে শুরু হওয়া সমস্ত কিছু মুদ্রণ করে।
আশা করি এটি সহায়তা করে এবং সৌভাগ্য।
wc -l
ফাইলটিতে কল করে আপনি এটি দুটি বার প্রক্রিয়া করেন, তবে sed
বা tail
কেবল একবারেই প্রক্রিয়া করেন।
sed
লিনাক্স এবং ম্যাক জুড়ে ত্রুটির কারণে , আমি tail -n +43 dump.sql > dump.sql
ফর্ম্যাটটি ব্যবহার করার সংকল্প করেছি ।
tail
। আপনার উত্তরগুলি থেকে শিখতে আমি অনেকবার নতুন কিছু পেয়েছি। ধন্যবাদ।