Kodokon kodokon.com

फ़ाइल पढ़ना और आउटपुट रीडायरेक्ट करना

cat, head और tail से किसी फ़ाइल की सामग्री दिखाएँ, फिर आउटपुट को किसी फ़ाइल में कैद करें।

7 मिनट · 3 प्रश्न

इस पाठ को Kodokon में खोलें

किसी फ़ाइल पर बस एक नज़र डालने के लिए हमेशा एडिटर खोलने की ज़रूरत नहीं होती। cat कमांड उसकी सामग्री सीधे टर्मिनल में छाप देती है। इसका नाम concatenate से आया है, यानी "सिरे से सिरा जोड़ना", क्योंकि यह कई फ़ाइलों को एक के बाद एक भी दिखा सकती है। छोटी फ़ाइलों के लिए यह आदर्श औज़ार है: ज़्यादा से ज़्यादा कुछ दर्जन पंक्तियाँ।

BASH
yoann@laptop:~/my-project$ cat shopping.txt
Bread
Cheese
Tomatoes

yoann@laptop:~/my-project$ cat shopping.txt notes.txt
Bread
Cheese
Tomatoes
Do not forget the Saturday market
एक फ़ाइल पर cat, फिर दो फ़ाइलों पर जो एक के बाद एक दिखाई जाती हैं।

दस हज़ार पंक्तियों वाली फ़ाइल पर cat दस सेकंड तक स्क्रीन दौड़ाता रहता है और आपको सिर्फ़ आख़िरी हिस्सा ही देखने को मिलता है। इसके लिए दो और सटीक कमांड मौजूद हैं: head फ़ाइल की शुरुआत दिखाती है, tail उसका अंत। दोनों डिफ़ॉल्ट रूप से 10 पंक्तियाँ दिखाती हैं, और ऑप्शन -n से आप तय कर सकते हैं कि कितनी। tail के पास ऑप्शन -f (follow) के साथ एक महाशक्ति है: यह खुली रहती है और नई पंक्तियाँ जैसे-जैसे आती हैं वैसे-वैसे छापती जाती है। किसी सर्वर का लॉग सीधे प्रसारण की तरह इसी से देखा जाता है।

BASH
head server.log
head -n 5 server.log
tail -n 20 server.log
tail -f server.log
शुरुआत, पहली 5 पंक्तियाँ, आख़िरी 20, फिर अंत सीधे प्रसारण में (बाहर निकलने के लिए Ctrl + C)।

डिफ़ॉल्ट रूप से कोई भी कमांड अपना नतीजा स्क्रीन पर लिखती है। पर आप उस नतीजे को किसी फ़ाइल में मोड़ सकते हैं, ठीक वैसे ही जैसे पाइप के पानी को किसी बाल्टी में मोड़ देते हैं। यही रीडायरेक्शन है, और इसे एक एंगल ब्रैकेट से लिखा जाता है। इकहरा एंगल ब्रैकेट > आउटपुट को फ़ाइल में भेज देता है और उसमें जो कुछ था उसे मिटा देता है। दोहरा एंगल ब्रैकेट >> कुछ भी मिटाए बिना अंत में जोड़ देता है। एक अक्षर का यह फ़र्क सब कुछ बदल देता है। आपने अभी-अभी जो बनाया है उसे पूरा दिखाए बिना जाँचने के लिए, wc कमांड (word count) ऑप्शन -l (lines) के साथ किसी फ़ाइल की पंक्तियाँ गिन देती है।

BASH
yoann@laptop:~/my-project$ echo "My first line" > notes.txt
yoann@laptop:~/my-project$ echo "My second line" >> notes.txt
yoann@laptop:~/my-project$ cat notes.txt
My first line
My second line
yoann@laptop:~/my-project$ ls -l > inventory.txt
yoann@laptop:~/my-project$ wc -l inventory.txt
7 inventory.txt
एक फ़ाइल बनाना, उसमें एक पंक्ति जोड़ना, जाँचना, कोई आउटपुट कैद करना और फिर उसकी पंक्तियाँ गिनना।

ज्ञान जांच

सुनिश्चित करें कि आपको इस पाठ के मुख्य बिंदु याद हैं।

  1. cat कमांड किसलिए है?
    • किसी फ़ाइल की सामग्री टर्मिनल में दिखाने के लिए
    • एक खाली फ़ाइल बनाने के लिए
    • एक फ़ाइल मिटाने के लिए
    • किसी फ़ाइल की पंक्तियाँ गिनने के लिए
  2. > और >> में क्या अंतर है?
    • > अंत में जोड़ता है, >> फ़ाइल मिटाकर लिखता है
    • > फ़ाइल मिटाकर लिखता है, >> अंत में जोड़ता है
    • कोई नहीं, दोनों किसी फ़ाइल में लिखते हैं
  3. server.log फ़ाइल की आख़िरी 20 पंक्तियाँ कैसे दिखाएँ?
    • head -n 20 server.log
    • cat -n 20 server.log
    • tail -n 20 server.log