मैंने देखा है कि बिल्ली कमांड कुछ ऑनलाइन सामान में आते हैं और मैं उत्सुक था कि क्या cat
किया है और किसी के संदर्भ में यह क्या है जो सिर्फ कुछ सरल कमांड लाइन सामान कर रहा है।
मैंने देखा है कि बिल्ली कमांड कुछ ऑनलाइन सामान में आते हैं और मैं उत्सुक था कि क्या cat
किया है और किसी के संदर्भ में यह क्या है जो सिर्फ कुछ सरल कमांड लाइन सामान कर रहा है।
जवाबों:
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
यूनिक्स की तरह ऑपरेटिंग सिस्टम पर सबसे अधिक इस्तेमाल किया जाने वाला कमांड है। पाठ फ़ाइलों के संबंध में इसके तीन संबंधित कार्य हैं:
बिल्ली का सामान्य वाक्य विन्यास है:
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
संदर्भ:
cat
उन फ़ाइलों को नहीं बना रहा है - शेल तब होता है जब आपने पुनर्निर्देशन का उपयोग किया था। आपके साथ भी हो सकता है echo foo > file1
।
cat
वास्तव में किसी और चीज के लिए क्या कर रहे हैं, इसके लिए जिम्मेदार हैं । उदाहरण के लिए, कर less file1 > file2
(या grep '.*' file1 > file
या awk 1 file1 > file2
या ...) एक ही प्रभाव पड़ता है। Ditto for 4. ये सिर्फ दुरुपयोग हैं।
> file
और एक ही परिणाम दे सकता हूं, लेकिन क्या मैं बिल्ली के साथ ऐसा करने को वैध नहीं मान सकता हूं?
cat
फ़ाइल नहीं बना रहा है। यह कहना cat
कि फाइल बनाना या कॉपी करना सादा झूठा है।
यहाँ है एक और तरीका खोल पुनर्निर्देशन का उपयोग कर (या पाइप) फ़ाइल निर्माण और के लिए 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
।
< <(cat file[12]) tr
साथ ही<<<$(cat file[12]) tr
कई फ़ाइलों को पुनर्निर्देशित करने के लिए दोनों पूरी तरह से मान्य तरीके हैं। बेशक आप के लिए भी जरूरतcat
है कि, पाइपिंग ही एकमात्र तरीका नहीं है।