क्या फाइल लिखने के लिए linux cat कमांड का इस्तेमाल किया जा सकता है?


143

कुछ इस तरह है:

cat "Some text here." > myfile.txt

मुमकिन? इस तरह की सामग्री myfile.txtअब अधिलेखित हो जाएगी:

Some text here.

यह मेरे लिए काम नहीं करता है, लेकिन यह भी कोई त्रुटि नहीं है।

विशेष रूप से एक- catआधारित समाधान (vim / vi / emacs, आदि नहीं) में रुचि । सभी उदाहरण ऑनलाइन शो catमें इनपुट के साथ उपयोग किए जाते हैं, न कि कच्चे पाठ ...

जवाबों:


184

यही echoहै:

echo "Some text here." > myfile.txt

13
बोनस: echo "Some text here." >> myfile.txtअंतिम ओ फ़ाइल में संलग्न करने के लिए
जिम अहो

6
यदि आपको अपने पाठ में दोहरे उद्धरण चिह्नों का उपयोग करने की आवश्यकता है, तो एकल उद्धरण में पूरी बात शामिल करें। यह .json और पसंद के लिए उपयोगी है, उदाहरण के लिएecho '{"info1": "123456"}' > info.json
bkd

164

लगता है कि आप यहाँ एक दस्तावेज़ की तलाश कर रहे हैं

cat > outfile.txt <<EOF
>some text
>to save
>EOF

लिनक्स कर्नेल 2.6.32 सेंटो 6 पर मुझे >अपेक्षित आउटपुट प्राप्त करने के लिए पात्रों को छोड़ना पड़ा ।
इको

4
>पात्रों का डिफ़ॉल्ट मान का प्रतिनिधित्व करते हैं $PS2; वे अपने आप दिखाई देते हैं, और टाइप करने के लिए नहीं हैं। यदि आप के लिए एक अलग मूल्य है $PS2, कि इसके बजाय दिखाएगा।
gbrener


10

मैं अपनी सीपीयू-सेटिंग्स को अपडेट करने के लिए, फ़ाइलों को कच्चा पाठ लिखने के लिए निम्न कोड का उपयोग करता हूं। आशा है कि यह मदद करता है! स्क्रिप्ट:

#!/bin/sh

cat > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor <<EOF
performance
EOF

cat > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor <<EOF
performance
EOF

यह उपरोक्त स्क्रिप्ट में उल्लिखित दो फाइलों के लिए पाठ "प्रदर्शन" लिखता है। यह उदाहरण फ़ाइलों में पुराने डेटा को अधिलेखित करता है।

यह कोड एक फ़ाइल (cpu_update.sh) के रूप में सहेजा गया है और इसे निष्पादन योग्य चलाने के लिए बनाया गया है:

chmod +x cpu_update.sh

उसके बाद, आप स्क्रिप्ट को इसके साथ चला सकते हैं:

./cpu_update.sh

यदि आप फ़ाइल में पुराने डेटा को अधिलेखित नहीं करना चाहते हैं, तो स्विच आउट करें

cat > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor <<EOF

साथ में

cat >> /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor <<EOF

यह आपके पाठ को फ़ाइल के अंत तक हटा देगा, जो फ़ाइल में पहले से मौजूद अन्य डेटा को हटाए बिना।


8
cat > filename.txt

पाठ का उपयोग करने के लिए EOF तक पाठ दर्ज करें: ctrl + d

यदि आप उस .txt फ़ाइल उपयोग को पढ़ना चाहते हैं

cat filename.txt

और एक बात। यह आपके संदर्भ के लिए, अनिवार्य नहीं है।


7

पाठ फ़ाइल के लिए:

cat > output.txt <<EOF
some text
some lines
EOF

PHP फ़ाइल के लिए:

cat > test.php <<PHP
<?php
echo "Test";
echo \$var;
?>
PHP

5

आप इसे इस तरह भी कर सकते हैं:

user@host: $ cat<<EOF > file.txt
$ > 1 line
$ > other line
$ > n line
$ > EOF
user@host: $ _

मेरा मानना ​​है कि इसका उपयोग करने के कई तरीके हैं।


4

बहु चर पाठ का उपयोग पर्यावरण चर के साथ करें echo:

echo -e "
Home Directory: $HOME \n
hello world 1 \n
hello world 2 \n
line n... \n
" > file.txt 


3

बिल्ली का उपयोग करके फ़ाइल लिखने का एक और तरीका कुछ इस तरह होगा

cat >file.txt <<< Write something here

जब आप किसी फ़ाइल में कमांड का आउटपुट लिखने की कोशिश कर रहे हों तो यह कमांड वास्तव में उपयोगी है। उदाहरण के लिए cat > docker-inspect.txt <<< docker की छवि का निरीक्षण करें ``
प्रशांत गणेशन

2

cat|एक फ़ाइल में लिखने के लिए भी इसका इस्तेमाल किया जा सकता है , यानी पाइप बिल्ली को डेटा की एक धारा खिलाती है


1

आपकी समस्या का समाधान है:

इको "कुछ पाठ यहाँ"> फ़ाइल नाम। txt

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

बिल्ली फ़ाइल नाम> newfile - newfile करने के लिए फ़ाइल नाम का आउटपुट पुनर्निर्देशित करने के लिए

कैट फ़ाइल नाम >> newfile - फ़ाइल नाम के उत्पादन को newfile में जोड़ना

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