আমরা কয়েকটি বড় ইডিআই ফাইল পার্স করছি যাতে সিআর / এলএফ থাকে না। তবে সেগমেন্ট ডিলিমিটার হিসাবে তাদের কাছে ~
( টিলডে ) আছে ।
আমি ফাইলটির জন্য নিয়ন্ত্রণ রেকর্ডটি বের করার চেষ্টা করছি এবং আমার 120 এমবি ফাইলের শেষ বাইটগুলি দেখতে এরকম কিছু দেখাচ্ছে:
~REF*1L*0711882~SE*62300*39093~GE*1*500001242~IEA*1*500001241~
ফাইলে একটি মাত্র নিয়ন্ত্রণ রেকর্ড রয়েছে এবং এটি সর্বদা শুরু হয় ~SE
।
সুতরাং, সিআরএলএফ রূপান্তর করা এবং ফাইলের শেষ তিনটি লাইনটি ব্যতীত এসই * 62300 * 39093 বিভাগটি পেতে এই ফাইলটি কাটাতে স্ট্যান্ডার্ড ইউনিক্স কাট , অ্যাজক , গ্রেপ , ইত্যাদি সরঞ্জামগুলি ব্যবহার করার কি সহজ উপায় আছে ~
?
দাবি
অস্বীকার : আমি কোনও ইউনিক্স গুরু নই, সুতরাং উত্তরটি কোনও অভিজ্ঞ ব্যবহারকারীর কাছে সুস্পষ্ট হতে পারে। এছাড়াও, ফাইল ফর্ম্যাটটিতে আমার কোনও নিয়ন্ত্রণ নেই।
tail
। এগুলি পার্স করার দরকার নেই। এর মতো কিছু tail edi_file | grep ~SE | cut -d'~' -f 3
(যেখানে এডিআইফাইল আপনার বড় ফাইলের নাম) (অস্বীকৃতি: প্রয়োজনীয় ক্ষেত্রটি কেবলমাত্র ক্ষেত্র # 3 এ কাজ করে যদি (by 'র দ্বারা বি-ডি হিসাবে বিস্মৃত হয় That তবে এটি সামঞ্জস্য করতে পারে we ~
আমরা আরও বড় আকার পেতে পারি? ইনপুট ফাইলের উদাহরণ?
tail --bytes=5000 ding
... এবং তারপরে আপনি আশা করেন যে আপনার প্রয়োজন যে তিনটি লাইন অন্তর্ভুক্ত করার জন্য শেষ 5000 বাইট যথেষ্ট enough
~
নতুন লাইনে রূপান্তর করা এবং ফাইলের শেষ 3 লাইনগুলি টেলিংয়ে কী সমস্যা ? যদি ফাইলটি ইতিমধ্যে নিউলাইনগুলিকে অন্তর্ভুক্ত না রাখার জন্য পরিচিত হয় তবে এটি বিন্যাসের মধ্যে কোনও অস্পষ্টতার পরিচয় দেয় না এবং সত্যি বলতে গেলে ফাইলটিকে এমন বিন্যাসে ম্যাসেজ করার সেরা উপায় যা এই সমস্ত লাইন-ভিত্তিক সরঞ্জামগুলির সাথে কাজ করা সহজ করে তোলে।