'कैट ’किसके लिए प्रयोग किया जाता है?


14

मैंने देखा है कि बिल्ली कमांड कुछ ऑनलाइन सामान में आते हैं और मैं उत्सुक था कि क्या catकिया है और किसी के संदर्भ में यह क्या है जो सिर्फ कुछ सरल कमांड लाइन सामान कर रहा है।

जवाबों:


12

catका मुख्य उद्देश्य बिल्ली enate फ़ाइलों को जीतना है। cat file1 file2 ...की सामग्री को दिखा देंगे file, file2एक के बाद एक और दूसरों के रूप में यदि सामग्री एक एकल फाइल में थे। देखें मैनपेज :

NAME
       cat - concatenate and print files

यह उपयोग के लिए है जहाँ या तो:

  • लक्ष्य कमांड फाइलों से नहीं पढ़ सकता है और आपको इसके लिए कई फाइलें पास करनी होंगी। एक उदाहरण trउपयोगिता है। आमतौर पर, एक फ़ाइल के साथ, आप यह करेंगे:

    tr < file
    

    लेकिन कई फ़ाइलों के साथ, पुनर्निर्देशन का उपयोग नहीं किया जा सकता है, इसलिए आपको करना होगा:

    cat file1 file2 ... | tr
    
  • एक लक्ष्य कमांड कई फ़ाइलों से पढ़ सकता है , लेकिन जब यह एक से अधिक फ़ाइलों को दिया जाता है तो इसका व्यवहार बदल सकता है। एक उदाहरण है wc, जो फ़ाइल नाम के साथ, प्रत्येक फ़ाइल के लिए मायने रखता है, जहाँ आप फ़ाइल नाम के बिना, कुल मिलाकर चाहते थे।

याद रखें कि सबसे आदेशों आपके सामने आने वाली ( grep, sed, awk, sort, ...) फ़ाइलों बिल्कुल ठीक पढ़ सकते हैं।

यदि आप किसी फ़ाइल की सामग्री को देखना चाहते हैं, तो पेजर का उपयोग करें - lessऔर moreयह दोनों देखने के लिए फ़ाइलें पेश करने में सक्षम हैं और उपयोग करने के लिए कहीं अधिक सुविधाजनक हैं।


पुनर्निर्देशन का उपयोग कई फ़ाइलों के साथ बहुत अच्छी तरह से किया जा सकता है क्योंकि आप इसे प्रक्रिया और कमांड प्रतिस्थापन के साथ जोड़ सकते हैं: < <(cat file[12]) trसाथ ही <<<$(cat file[12]) trकई फ़ाइलों को पुनर्निर्देशित करने के लिए दोनों पूरी तरह से मान्य तरीके हैं। बेशक आप के लिए भी जरूरत catहै कि, पाइपिंग ही एकमात्र तरीका नहीं है।
मिठाई

@dessert यदि आपको पांडित्यपूर्ण होना है, तो वह पुनर्निर्देशन अभी भी केवल एक ही फ़ाइल का उपयोग करता है - कमांड के स्टडआउट (या अन्य प्रकार से, यदि आसपास का रास्ता) का प्रतिनिधित्व करने वाली फ़ाइल। बैश सच बहु फ़ाइल पुनर्निर्देशन का समर्थन नहीं करता है जैसे zsh करता है।
मुरु

9

catयूनिक्स की तरह ऑपरेटिंग सिस्टम पर सबसे अधिक इस्तेमाल किया जाने वाला कमांड है। पाठ फ़ाइलों के संबंध में इसके तीन संबंधित कार्य हैं:

  1. उन्हें प्रदर्शित करना
  2. उनकी प्रतियों का संयोजन
  3. नए बना रहे हैं।
  4. फ़ाइलों की प्रतिलिपि बनाएँ

बिल्ली का सामान्य वाक्य विन्यास है:

cat [options] [filenames] [-] [filenames]

फाइलें पढ़ना

बिल्ली का सबसे आम उपयोग फ़ाइलों की सामग्री को पढ़ने के लिए है, और बिल्ली अक्सर इस उद्देश्य के लिए सबसे सुविधाजनक कार्यक्रम है। प्रदर्शन मॉनीटर पर देखने के लिए एक टेक्स्ट फ़ाइल खोलने के लिए आवश्यक है कि एक बिल्ली और एक फाइल के नाम के बाद बिल्ली शब्द टाइप करें और फिर ENTER कुंजी दबाएं। उदाहरण के लिए, निम्नलिखित फ़ाइल 1 नामक फ़ाइल की सामग्री प्रदर्शित करेगा:

cat file1

कड़ी

बिल्ली की दूसरी भूमिका संगति है। (यह बिल्ली के जिज्ञासु नाम का स्रोत है।) मूल फाइलों पर कोई प्रभाव नहीं पड़ता है।

उदाहरण के लिए, निम्नलिखित कमांड तीन फाइलों file1, file2 और file3 की सामग्रियों की प्रतियों को सम्‍मिलित करेगी:

cat file1 file2 file3

प्रत्येक फ़ाइल की सामग्री को मॉनिटर स्क्रीन पर प्रदर्शित किया जाएगा। यह आउटपुट आउटपुट रीडायरेक्शन ऑपरेटर का उपयोग करके किसी अन्य फ़ाइल, जैसे कि फ़ाइल 4, को निम्न का उपयोग करके आसानी से पुनर्निर्देशित किया जा सकता है:

cat file1 file2 file3 > file4

फ़ाइल निर्माण

@ मुरु टिप्पणी के लिए धन्यवाद : बिल्ली शेल पुनर्निर्देशन सुविधा के आधार पर नई फाइलें बनाने में सक्षम है और स्वयं नहीं

छोटी फ़ाइलों के लिए यह अक्सर vi, gedit या अन्य टेक्स्ट संपादकों का उपयोग करने से आसान होता है। यह आउटपुट रीडायरेक्शन ऑपरेटर द्वारा बनाई गई बिल्ली टाइप करने और फ़ाइल के नाम को बनाने के द्वारा पूरा किया जाता है, फिर दबाने ENTERऔर अंत में एक साथ Ctrl& dकीज़ दबाते हुए ।

उदाहरण के लिए, फ़ाइल 1 नामक एक नई फ़ाइल टाइप करके बनाई जा सकती है

cat > file1

फिर दबाएं ENTERऔर एक साथ Ctrl& dकीज दबाएं ।

PS1: यदि फ़ाइल नाम की कोई फ़ाइल पहले से मौजूद है, तो उसे ओवरराइट कर दिया जाएगा

PS2: आप परिशिष्ट ऑपरेटर >>उदाहरण बिल्ली >> file1 का उपयोग करके बाहर की गई फ़ाइल पर जा सकते हैं

फ़ाइलें कॉपी करें

बिल्ली कमांड का उपयोग एक नई फ़ाइल बनाने और मौजूदा फ़ाइल से डेटा को स्थानांतरित करने के लिए ( शेल पुनर्निर्देशन सुविधा के आधार पर) भी किया जा सकता है । उदाहरण: फ़ाइल की एक प्रतिलिपि बनाएँ oldfile.txt:

cat oldfile.txt > newfile.txt

संदर्भ:


1
पुन: 3 catउन फ़ाइलों को नहीं बना रहा है - शेल तब होता है जब आपने पुनर्निर्देशन का उपयोग किया था। आपके साथ भी हो सकता है echo foo > file1
मुरु जुएल

@ मुरु आप पूरी तरह से सही हैं, लेकिन यह अभी भी बिल्ली कमान का उपयोग करता है
Maythux

1
नहीं, यह नहीं है। आप catवास्तव में किसी और चीज के लिए क्या कर रहे हैं, इसके लिए जिम्मेदार हैं । उदाहरण के लिए, कर less file1 > file2(या grep '.*' file1 > fileया awk 1 file1 > file2या ...) एक ही प्रभाव पड़ता है। Ditto for 4. ये सिर्फ दुरुपयोग हैं।
मुरु

मुझे पता है कि मैं इसे सिर्फ इस्तेमाल कर सकता हूं > fileऔर एक ही परिणाम दे सकता हूं, लेकिन क्या मैं बिल्ली के साथ ऐसा करने को वैध नहीं मान सकता हूं?
मेथक्स जूल

1
तुम्हें पता है, कर सकते हैं , तो आपके द्वारा निर्दिष्ट है कि catफ़ाइल नहीं बना रहा है। यह कहना catकि फाइल बनाना या कॉपी करना सादा झूठा है।
मुरु

1

इसका उपयोग किसी फ़ाइल की सामग्री को दिखाने के लिए किया जा सकता है। उदाहरण के लिए: cat "my file.txt"। आप इसके man catबारे में विवरण दिखाने के लिए भी कर सकते हैं कि catइसका क्या उपयोग किया जा सकता है।


0

यहाँ है एक और तरीका खोल पुनर्निर्देशन का उपयोग कर (या पाइप) फ़ाइल निर्माण और के लिए cat:

cat << EOF > foo.sh
#!/bin/sh
echo 'Hello World!'
EOF

cat << EOFनिम्न पंक्तियों को तब तक आउटपुट करेगा जब तक कि स्ट्रिंग EOFफिर से सामने न आ जाए। तब >( >>) फ़ाइल में आउटपुट रीडायरेक्ट करेगा foo.sh। वैकल्पिक रूप से, यदि आपको रूट के रूप में एक फाइल बनाने की आवश्यकता है, तो आप आउटपुट को कमांड tee( tee -a) द्वारा निष्पादित कर सकते हैं, कमांड द्वारा निष्पादित sudo:

cat << EOF | sudo tee foo.sh && sudo chmod +x foo.sh
#!/bin/sh
HELLO='Hello World!'
echo "\$HELLO"
EOF
  • उपरोक्त फ़ाइल को निष्पादन योग्य बना देगा ( chmod +x) यदि यह सफलतापूर्वक बनाया गया है ( &&)।
  • कुछ वर्णों के विशेष अर्थ (के रूप में $) \के उत्पादन के भीतर (के साथ ) बच जाना चाहिए cat
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.