क्या एक आदेश का पालन करना संभव है (बार-बार चलना)? के रूप में एक पूंछ -f का उपयोग कर एक फ़ाइल का पालन करेंगे?


10

मेरे पास एक स्क्रिप्ट है, जो एक फ़ाइल 'Detail.out' का निर्माण करती है। मुझे पता है कि स्क्रिप्ट पूरी हो जाती है जब फ़ाइल में कुछ निश्चित संख्या में लाइनें (लगभग 21025) होती हैं। इसलिए मैं खुद को कमांड प्रॉम्प्ट पर बैठे हुए पाता हूं:

[me@somewhere myDir]$ wc -l */Detail.out
  21025 A/Detail.out
  21025 B/Detail.out
  21025 C/Detail.out
  12995 D/Detail.out
  10652 E/Detail.out
   3481 F/Detail.out
  21027 G/Detail.out
  21025 H/Detail.out
  21025 I/Detail.out
  ...   ...

मैंने tail -fएक विशिष्ट फ़ाइल देखने के लिए उपयोग किया है, लेकिन मैं wc -l */Detail.outऊपर दिखाए गए कमांड के आउटपुट का पालन करना चाहूंगा । क्या यह संभव है? मैं वर्तमान tcshमें Ubuntu 11.04 में उपयोग कर रहा हूँ अगर वह मायने रखता है।

जवाबों:


18

watchकमांड का प्रयास करें , हालांकि मुझे संदेह है कि सभी ने एक समय या किसी अन्य पर अपना संस्करण लिखा है। (सस्ता संस्करण है while :; do clear; "$@"; sleep 5; done।)


0

यकीन नहीं होता अगर आपको पता है लेकिन आप प्रोग्राम के आउटपुट को फ़ाइल में भी रीडायरेक्ट कर सकते हैं। Http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html इस प्रकार देखें , एक और तरीका यह हो सकता है कि आप किसी फाइल में आउटपुट को रीडायरेक्ट करें और फिर उस फाइल पर टेल का उपयोग करें जैसा कि आप पहले से ही करते आ रहे हैं। ।

$ find . -name "Detail.out" | xargs wc -l >> detail-out-list.txt

और दूसरे टर्मिनल में आप चला सकते हैं $ tail -f detail-out-list.txtजैसा कि आप के लिए उपयोग किया जाता है।

जैसा कि सेलेब ने उल्लेख किया है कि कुछ फ़ाइल को छोड़ दिया जाता है जिसके आसपास आप क्या चाहते हैं (उस फ़ाइल का आगे निरीक्षण करने के लिए या कुछ इतिहास है) या नहीं और कुछ भी समय-समय पर निष्पादित नहीं watchहोता है जैसे आपके लिए होता है।


यह ओपी प्रश्न को बिल्कुल भी संबोधित नहीं करता है, यह सिर्फ एक अन्य कमांड को काम को दंडित करता है और इसे चलाने और साफ करने के लिए सामान की पूरी नई परत की आवश्यकता होती है।
कालेब

@ कालेब: मैं इस बारे में स्पष्ट नहीं हूं कि यह इतना भयानक जवाब क्यों है। आउटपुट फ़ाइल / tmp में हो सकती है, इसलिए इसे साफ़ करने की कोई आवश्यकता नहीं है। मुझे नहीं लगता कि सवाल यह था कि "मैं बार-बार कमांड कैसे चला सकता हूं?" लेकिन "मैं एक कमांड का पालन कैसे कर सकता हूं जो बार-बार चलाया जाता है?"। जहाँ तक मैं देख सकता हूँ, ऐसा लगता है कि यह ओपी के प्रश्न का उत्तर देता है ... ठीक है अधिक सावधान पढ़ने पर, मुझे लगता है कि प्रश्न अस्पष्ट रूप से वर्तमान में पोस्ट किया गया है: "(बार-बार)" मतलब "(जो बार-बार चलाया जा रहा है) ) "या" (यह कहना है, मैं इसे बार-बार कैसे चलाता हूं?) "?
आइकनोकॉस्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.