Есть скрипт вида
seps='\$\$'
let i=0
while [ "$i" -lt "$maxi" ]; do
line="${array[$i]}"
sed -i "s/$seps/$line/" "$file"
#echo "[$i]: Заменяю [$seps] на [$line]..."
let i=$i+1
done
Скрипт берет строчки из файла-2 и единожды заменяет определенную последовательность символов (в данном случае $$) из файла-1 на соответствующую строчку из файла-2 (номер строчки посли замены увеличивается на 1). Тесты показали, что все в порядке (в том числе прогон с echo), однако в реальной практике sed зачем-то заменяет $$ два раза, даже если явно указать s///1. Т.е. если должно быть $$ => a[0], $$ => a[1], $$ => a[2] и т.д., получаем примерно так: $$ => a[0], $$ => a[0], $$ => a[1], $$ => a[0], $$ => a[1], $$ => a[2]. Почему так?
Прошу прощения, если неясно сформулировал проблему.
Полный скрипт здесь: http://pastebin.com/drDSmyPm