2013-07-15 2 views
0

У меня около 400 текстовых файлов размером примерно 350 МБ каждый. Я хочу добавить содержимое файла заголовка (содержащего 7 строк простого текста) в каждый из этих 400 файлов.Как эффективно добавлять содержимое файла заголовка в большое количество файлов?

В настоящее время я перебираю 400 файлов и делаю это с cat, а затем mv. Вот псевдокод:

for $infile in $indir { 
    cat $headerfile $infile > $infile.tmp 
    mv $infile.tmp $infile 
} 

Есть ли более эффективный способ сделать это?

ответ

2

Вставка в файл невозможна без копирования оставшейся части файла. Ваш псевдокод является наиболее «эффективным» методом с точки зрения операций.

Что может помочь в написании промежуточного файла TMPFS, чтобы не писать дважды на диск:

cat "$headerfile" "$infile" > /tmp/tmp 
mv /tmp/tmp "$infile" 

(изменение tmp по мере необходимости, если вы хотите запускать параллельные команды).

+0

Thx для подсказки 'tmpfs' – arun

Смежные вопросы