सवाल एक संपादक खोलने के बिना एक पाठ फ़ाइल में लाइन जोड़ने के लिए आदेश


मान लीजिए कि मेरे पास एक रेखा है जिसे मैं एक संपादक खोलने के बिना फ़ाइल में जोड़ना चाहता हूं।

मैं इस लाइन को कैसे जोड़ सकता हूं

alias list='ls -cl --group-directories-first'

इस फाइल के लिए

config.fish

126
2018-01-14 19:00


मूल




जवाब:


आप एक जोड़ सकते हैं लाइन फ़ाइल का उपयोग करके फ़ाइल में >> ऑपरेटर:

echo "hello world" >> my_file.txt

या आपके मामले में

echo "alias list='ls -cl --group-directories-first'" >> config.fish

कृपया ध्यान दें विभिन्न प्रकार के उद्धरण


202
2018-01-14 19:09



मैं खुद को गूंजता हूं, लेकिन सावधान रहें, अगर आप केवल एक निर्दिष्ट करते हैं > तो फ़ाइल छंटनी होगी, संलग्न नहीं होगा। एक सुरक्षित कमांड के लिए आप sed का उपयोग कर सकते हैं: sed -i '$a hello world' filename - invert
स्पष्टीकरण: -i फ़ाइल अपडेट करेगा (अन्यथा यह केवल परिणाम को stdout पर प्रिंट करेगा) $ रेगेक्स है जो फ़ाइल के अंत से मेल खाएगा, और a निम्नलिखित पाठ को फ़ाइल नाम में जोड़ता है। - invert
echo "hello world" >> my_file.txt के साथ एक नई अंतिम लाइन नहीं बना है HW, लेकिन इसे अंतिम पंक्ति की स्ट्रिंग में जोड़ें। - Timo
क्या है HW @ टिमो? - 7wp
शायद "हैलो वर्ल्ड" @ 7wp :) यह है echo जो लाइन ब्रेक जोड़ता है (इसे केवल रेखाओं के समूह के विपरीत एक रेखा बना देता है)। आप अंत में लाइन ब्रेक को बंद कर सकते हैं -n। - Stefano Palazzo♦


टेक्स्ट संपादकों को खोलने के बिना फ़ाइल में शामिल होने के कई तरीके हैं, खासकर उबंटू में कई उपलब्ध टेक्स्ट प्रोसेसिंग यूटिलिटीज के माध्यम से।

  • tee -a config.fish <<< "alias list='ls -cl --group-directories-first'"
  • awk 'BEGIN{ printf "alias list=\x27ls -cl --group-directories-first\x27\n" >> "config.fish" }'
  • sed -i '$a alias list='"'"'ls -cl --group-directories-first'"'" config.fish

2
2018-06-17 21:01





में जोड़ना Stefano का जवाब, आप भी उपयोग कर सकते हैं cat:

  • हेड्रोक का उपयोग करना:

    $ cat >> config.fish <<'EOF'
    > alias list='ls -cl --group-directories-first'
    > EOF
    

    <<'EOF' का मतलब है "इनपुट के रूप में निम्नलिखित ले लो, जब तक आप केवल उस रेखा तक नहीं पहुंच जाते EOF"उद्धरण का अर्थ सचमुच इनपुट लेना है।

  • या stdin पर लाइन इनपुट:

    $ cat >> config.fish
    

    फिर लाइन में पेस्ट या टाइप करें, दबाएं दर्ज एक नई लाइन पर जाने के लिए, अंत को चिह्नित करने के लिए Ctrl + D दबाएं।


1
2018-06-17 23:05