2011-04-07 28 views
26

Metin dosyalarının bulunduğu bir klasör var. Her birine aynı metin bloğunu eklemem gerek (tabii ki orijinal dosyanın üzerine yaz).Her dosyaya metin eklemek için kabuk komut dosyası mı?

Bunun için doğru Bash kabuk sözdiziminin ne olacağını merak ediyordum. Kediyi kullanır mıyım?

Birkaç toplu komut dosyası hazırladım ancak Bash uzmanı değilim. Herhangi bir öneri takdir edildi.

+5

Üzerine Yazma bölümünü veya ekleme, hem dışlar? – flolo

cevap

32

Ek yeniden yönlendirmeyi kullanın. Eğer bir komut dosyası ile bunu yapma ihtiyacı ediyorsanız

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

OP, "ve tabii ki orijinal dosyaların üzerine yazıyor" diye belirtiyor, bu yüzden '>' –

+2

@ wiliam yerine '>' seçeneğinden şüpheleniyorum, hayır, bu yanıt altbilgi metnini her dosyaya ekler. Her dosyanın gerçek verilerini silmek istemezsiniz. –

+1

'Footer', her dosyaya eklenecek bir metin bloğunu içeren bir dosyadır. –

6

, sen yankı kullanabilir ve dosyalar halinde ekstra metin almak için yeniden yönlendirme ekleyebilirsiniz.

Kurumi en cevabın
FILES=pathto/* 
for f in $FILES ; do 
    echo "#extra text" >> $f 
done 
1
sed -i.bak "$ a $(<file_block_of_text)" *.txt 
İlgili konular