কমান্ড পাইপিং গ্রেপ থেকে কোনও ফাইলে একটি আউটপুট পুনর্নির্দেশ করুন


9

আমি এটি চালাচ্ছি:

cat /dev/urandom|hexdump| grep -i "ffff f" > random

এবং আমি ফাইলে কিছুই পাই না random, কমান্ড বিঘ্নিত হওয়ার পরে এটি শূন্য দৈর্ঘ্য থেকে যায়।

কীভাবে এটি কোনও ফাইলে লেখার আউটপুট তৈরি করবেন?

আমাকে কোনও ফাইলে ফলাফল লিখতে হবে, এতে আউটপুট ডেটা থাকতে হবে:

021bc40 7724 d4f5 59ec bcbb ffff fd26 ab3c 9b7c

03a9100 b3a5 8601 fa33 ffff f23c 4326 2e7f 0c8a

0449810 e459 d5af 4e11 ffff fc55 8660 9efb 3c9b

এখানে চিত্র বর্ণনা লিখুন

উত্তর:


14

এর জন্য --line-bufferedবিকল্পটি ব্যবহার করুন grep(এবং অকেজো থেকে মুক্তিও পান cat):

hexdump /dev/urandom | grep --line-buffered -i "ffff f" > random

এইভাবে আউটপুটটি বাফার হয় না তবে প্রতিটি লাইন randomতত্ক্ষণাত intoোকানো হয়। teeকয়টি লাইন উত্পাদিত হয়েছে তা দেখতে আমি আপনার পাইপে ব্যবহার করার পরামর্শও দেব :

hexdump /dev/urandom | grep --line-buffered -i "ffff f" | tee random

3

আপনার ফাইলটি খালি কারণ ফাইলটি ডিস্কে লেখার আগে প্রক্রিয়াটি বাধাগ্রস্ত হয়। পুনঃনির্দেশ কাজ করে যেভাবে। কার্যকারণ হিসাবে এটি চেষ্টা করুন:

script -c 'cat /dev/urandom|hexdump|grep -i "ffff f"' -f random

এটি মূলত সমস্ত স্ক্রিন আউটপুট ফাইলটিতে লিখবে।


এটি আরও একটি কমান্ড জড়িত, কিন্তু বিতরণ। ধন্যবাদ.
রুস্লান গেরাসিমভ

3

cat /dev/urandom|hexdumpবা hexdump /dev/urandomstdout এ অবিচ্ছিন্নভাবে লিখছেন এবং আপনি টিপুন Ctrl+ এর Cপরে কিছুই কার্যকর করা হবে না। তবে আপনি এর সাথে আউটপুট সীমাবদ্ধ করতে পারেনhead

hexdump /dev/urandom | head -n1000000 | grep "ffff f" > random  

এই ইচ্ছার grepআউটপুট প্রথম 1000000 লাইন এবং একটি ফাইল ফলাফলের লিখেছেন।


আরও একটি কমান্ড জড়িত, কিন্তু একটি ভাল ফলাফল দিয়েছে। ধন্যবাদ.
রুসলান গেরাসিমভ

1

cat /dev/urandom | hexdumpপরের বার প্রয়োগ করার আগে আপনাকে কোনও ফাইলের আউটপুট লিখতে হবে । নীচের স্ক্রিপ্টটি আপনি যা চেষ্টা করছেন তা সম্পাদন করবে:

cat /dev/urandom | hexdump |
  while IFS= read -r line; do
    printf '%s\n' "$line" >> random;
  done

IFS আউটপুটটি এখানে রেখায় বিভক্ত করতে ব্যবহৃত হয়।


(সূত্র)


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