আমার কাছে এমন ফাইল রয়েছে যা একটি প্রোগ্রাম দ্বারা তৈরি হয়েছিল যা রেকর্ডের শেষে নতুন লাইনে রাখেনি। আমি রেকর্ডগুলির মধ্যে নিউলাইনগুলি রাখতে চাই এবং একটি সাধারণ সেড স্ক্রিপ্ট দিয়ে আমি এটি করতে পারি:
sed -e 's/}{/}\n{/g'
সমস্যাটি হ'ল ইনপুট ফাইলগুলি আকারে একাধিক গিগাবাইট এবং তাই সেড থেকে ইনপুট লাইন একাধিক গিগাবাইট দৈর্ঘ্যের হয়। সেড মেমোরিতে একটি লাইন ধরে রাখার চেষ্টা করে, যা এই ক্ষেত্রে কাজ করে না। আমি --unbuffered
বিকল্পটি চেষ্টা করেছিলাম , তবে এটি কেবল এটি ধীর করে দিয়েছে এবং এটি সঠিকভাবে শেষ করতে দেয়নি।
tr
অনুবাদ করার }
মধ্যে \n
এবং তারপর ব্যবহার sed
একটি যোগ করার জন্য }
প্রতিটি লাইনে শেষে? এটি পছন্দ করুন:tr '}' '\n' < your_file.txt| sed 's/$/}/'
printf "\n" >> file
}{
বিভিন্ন গিগাবাইট দীর্ঘ না হওয়া অবধি পুনরাবৃত্তি করে 78৮ টি আবর্জনা অক্ষর যুক্ত একটি ফাইল লিখছি ।
dd if=file cbs=80 conv=unblock
তা করবে - তবে এটি খুব কমই সহজ।