कमांड पाइपिंग grep से फाइल में आउटपुट को रीडायरेक्ट करें


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विकल्प का उपयोग करें :grepcat

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

इस तरह आउटपुट बफ़र्ड नहीं होता है लेकिन हर लाइन randomतुरंत डाल दी जाती है। मैं 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 यहाँ आउटपुट को लाइनों में विभाजित करने के लिए उपयोग किया जाता है।


(स्रोत)


grep "ffff f"चूक गए
रुसलान गेरासिमोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.