2011-04-07 10 views
26

मेरे पास टेक्स्ट फाइलों से भरा एक फ़ोल्डर है। मुझे उनमें से प्रत्येक को पाठ के समान ब्लॉक को जोड़ने की आवश्यकता है (और निश्चित रूप से मूल फ़ाइल को ओवरराइट करें)।शैल स्क्रिप्ट प्रत्येक फ़ाइल में पाठ जोड़ने के लिए?

मैं सोच रहा था कि इसके लिए सही बैश खोल वाक्यविन्यास क्या होगा। क्या मैं बिल्ली का उपयोग करूंगा?

मैंने कुछ बैच स्क्रिप्ट किए हैं लेकिन मैं बैश विशेषज्ञ नहीं हूं। किसी भी सुझाव की सराहना की।

+5

ओवरराइट या संलग्न, दोनों विशेष कर रहे हैं? – flolo

उत्तर

32

पुनर्निर्देशन संलग्न करें का उपयोग करें।

for f in *.txt 
do 
    cat footer >> "$f" 
done 
+0

ओपी कहता है "और निश्चित रूप से मूल फाइलों को ओवरराइट करें", इसलिए मुझे संदेह है कि '>' –

+2

@ विलीम के बजाय '>' वांछित है, नहीं, यह उत्तर प्रत्येक फ़ाइल में पाद लेख पाठ को जोड़ता है। आप प्रत्येक फ़ाइल के वास्तविक डेटा को मिटा नहीं करना चाहते हैं। –

+1

जहां 'फ़ूटर' एक फ़ाइल है जिसमें टेक्स्ट का ब्लॉक होता है जिसे प्रत्येक फ़ाइल में जोड़ा जाना चाहिए। –

6

आप एक स्क्रिप्ट के माध्यम से ऐसा करने की जरूरत है, तो आप गूंज का उपयोग करें और पुनर्निर्देशन संलग्न फ़ाइलों में अतिरिक्त पाठ प्राप्त करने के लिए कर सकते हैं।

Kurumi के जवाब की
FILES=pathto/* 
for f in $FILES ; do 
    echo "#extra text" >> $f 
done 
संबंधित मुद्दे