জিএনইউ স্ক্রিনের স্ক্রীনলগ থেকে পালানোর অক্ষরগুলি সরানো হচ্ছে%% n


14

জিএনইউ স্ক্রিনের আউটপুট ফাইলে কি ইসি সিকোয়েন্সগুলি সরিয়ে ফেলা সম্ভব? রঙ, ট্যাব এবং অন্যান্য অব্যাহতি অক্ষরের মতো জিনিসগুলি লগ ফাইলগুলিতে প্রবেশ করে এবং সিদ্ধান্ত বোঝা মুশকিল হয়ে যায়।

আমি ডাঃ গুগল এন্ড কোং এর পাশাপাশি ম্যানুয়ালটি পড়ার চেষ্টা করেছি, তবে উপযুক্ত কিছু খুঁজে পাচ্ছি না ...

সম্ভবত আমি কিছু উপেক্ষা করেছি?

উত্তর:


11

পার্ল যাদুটির এই টুকরোটি ব্যবহার করে দেখুন:

perl -ne 's/\x1b[[()=][;?0-9]*[0-9A-Za-z]?//g;s/\r//g;s/\007//g;print' < screenlog.0

তার জন্য ধন্যবাদ - এটি দুর্দান্ত!
এটিতে

1
এটি প্রকাশের সাথে যুক্ত হয়েছে।
হোয়াইটকিয়ার্ক

আমি আশ্চর্য হয়েছি যে এই এক লাইনোরের মধ্যে কতগুলি ASCII মুখ রয়েছে। আমি প্রায় 20
টি

4
অবশ্যই আমি আরও একটি ওয়ান-লাইন লিখতে পারি যা তাদের গণনা করবে।
হোয়াইটকিয়ার্ক

10

অ্যাসিফিল্টার ব্যবহার করুন।

ansifilter screenlog.txt > screenlog.txt.clean

এটি কি প্রতিটি লিনাক্স সিস্টেমে কিছু বা কিছু ইনস্টল করা দরকার?
যাত্রামন গীক

@ জার্নিম্যানজিগ এটি উবুন্টু ভাণ্ডারগুলিতেও নেই, তাই আমি এটির মতো জনপ্রিয় নয় বলব। দেখে মনে হচ্ছে আপনাকে প্রকল্প পৃষ্ঠা থেকে এটি নিজের হাতে পেতে হবে এবং নিজেকে চালনা / সংকলন করতে হবে। ঠিক একটি জনপ্রিয় প্রোগ্রাম কল wouldnt ansifilter.sourceforge.net
সাইমন Sheehan

আমি ওএসএক্স এ আছি এবং ব্যবহার করেছি brew install ansifilterএবং এটি কবজির মতো কাজ করেছে।
thekingoftruth

1
আমি জানি না যে এটি কীভাবে পরিবর্তিত হয়েছে ২০১২ এর বিতরণ সম্পর্কে মন্তব্য করার পরে, তবে ফেডোরার (22) প্রকাশের জন্য রেপোতে এটি পেয়েছি।
ডিএমএইচ

10

কম -r বা -R বিকল্প ব্যবহার করে দেখুন।

less -r screenlog.0

সুন্দর সমাধান। এটি সমস্ত ^ এইচ (মুছুন) অক্ষরের সাথে সঠিকভাবে কাজ করে, ^ এম ক্রাফট ছাড়াই অগ্রগতি বারগুলি প্রদর্শন করে এবং এমনকি আমার রঙের প্রম্পট সংরক্ষণ করে! অবশ্যই, কখনও কখনও লগ প্রদর্শন যথেষ্ট নয়।
কোয়ান্টাম 7

5

স্ক্রিনলগ.এন-তে আপনার সেশনটি ক্যাপচার করার পরে, আপনি ফাইলটি টার্মিনালে ক্যাট করতে পারেন এবং তারপরে স্ক্রালের হার্ডকপি কমান্ডটি কোনও ফাইলটিতে বিড়ালের আউটপুট ডাম্প করতে পারেন। ফলাফল আপনাকে পরিষ্কার আউটপুট সরবরাহ করবে যার কোনও পালানোর ক্রম নেই।

একমাত্র 'গ্যাচা' মনে হয়েছে যে হার্ডকপিটি স্ক্রোলব্যাক বাফারে ইভেরিটিং কিছু ক্যাপচার করে এবং স্ক্রোলব্যাক বাফারে কেবল আপনি যা ক্যাপচার করতে চান তা রয়েছে।

1. $ screen
2. $ cd /path/to/screenlog.n directory/
3. $ wc -l screenlog.n 
4. $ screen -X scrollback 245 # 245 is the number of lines found from your wc command + 5 
5. $ cat screenlog.n
6. $ screen -X hardcopy -h screenlog.n.cleaned 

নোট করুন - এটি নিশ্চিত করে যে আপনি পুরো স্ক্রোলব্যাকের ইতিহাস ক্যাপচার করেছেন এবং কেবল তাত্ক্ষণিক দৃষ্টিতে যা যা তা নয়

স্ক্রিনলগ.ন.ক্লিনযুক্ত ফাইলটিতে এখন বিড়ালের আউটপুটটির একটি হার্ডকপি থাকবে এবং এতে কোনও পালানোর ক্রম অন্তর্ভুক্ত থাকবে না


খুব খুব ঝরঝরে । অন্য সমস্ত পার্ল / সেড / পাইথন ওয়ান-লাইনার আমার জন্য ব্যর্থ হয়েছিল। খুব কম হতাশ হয়ে যখন ভেবেছিলেন যে কম-র / বেশি লোক সরাসরি আমার ফাইল পরিচালনা করছে। একটি পরামর্শ wc -lআমার পক্ষে কার্যকর হয়নি। এটি 28226 ফিরে এসেছে, তবে আমার ক্ষেত্রে সত্যই 33031 দরকার ছিল।
মালাত

4

আমি stringsস্ক্রিন লগকে পঠনযোগ্য করে তুলতে কমান্ডটি ব্যবহার করি । ডেবিয়ান এর অধীনে এটি বাইনুটিস প্যাকেজের অংশ।

যেমনটি এর ম্যান পেজ বলে:

স্ট্রিংস - কোনও বস্তুতে বা অন্যান্য বাইনারি, ফাইলের মুদ্রণযোগ্য স্ট্রিংগুলি সন্ধান করুন


2

আপনি যদি screenব্যবহারকারী হন তবে জোয়েল ভার্কসের পোস্টের দ্বারা প্রস্তাবিত স্ক্রিন হার্ডকপি সমাধানটি সেরা কাজ করবে - ধরে নিবেন যে আপনার একটি বৃহত স্ক্রোলব্যাক আপনার মধ্যে সংজ্ঞায়িত করা হয়েছে .screenrc:

defscrollback 10000

তাহলে আপনি কি করবেন:

  1. আপনার screenlogফাইল প্রদর্শন করুন:

    $ cat screenlog.<screen_window_num>
    
  2. hardcopy -hবর্তমান উইন্ডো সামগ্রী এবং এর স্ক্রোলব্যাক বাফারটি hardcopy.#ফাইলটিতে সংরক্ষণ করতে (স্ক্রিন ম্যান পৃষ্ঠা দেখুন) ব্যবহার করুন:

    <Escape key> (Ctrl-a by default)
    :hardcopy -h
    
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.