> Подскажите, пожалуйста, как выполнить замену, чтобы в /tmp/file1.txt было ИМЯ:Вася
> в /tmp/file2.txt ИМЯ: Петя, а в файле /tmp/file3.txt ИМЯ: Миша Порядок значений в первом файле соответствует порядку файлов, в которых нужно произвести замену?
Если правило понял задачу, то на bash можно решить так:
#!/bin/bash
# меняем разделитель полей на случай имен с пробелами
IFS=$'\n'
# сохраняем массив имен
NAMES=($(</tmp/names.txt))
# сохраняем массив файлов
FILES=(/tmp/file*.txt)
# итерируем по массиву имен
for ((i=0; i<${#NAMES[@]}; i++)); do
# проверяем, что имя не пустое и соответствующий файл существует
if [[ -n "${NAMES[i]}" && -f "${FILES[i]}" ]]; then
# выполняем замену с созданием резервной копии
sed -i.bak "s/ИМЯ: .*/ИМЯ: ${NAMES[i]}/g" "${FILES[i]}"
fi
done