С awk
:
awk '{print $0 > "dir"NR"/textfile"}' datafile
NR
расширяется до текущего номера записи, поэтому каждая строка будет сохранена в dir / textfile
, например первая строка будет сохранена в dir1 / textfile
, вторая - в dir2 / textfile
и так далее. Нет необходимости в дорогостоящем , пока
перебирает строки файла и выполняет операцию:
i=1; while IFS= read -r line; do echo "$line" >dir"$i"/textfile; ((i++)); done <datafile
Вышеупомянутый способ оболочки предназначен только для демонстрации метода, вы должны следовать awk
путь.
Редактировать на основе комментария:
Для замены всех 400
с необходимыми числами из файла данных
:
i=1; while IFS= read -r line; do sed "s/400/$line/g" dir"$i"/textfile; ((i++)); done <datafile
Для редактирования файлов на месте:
i=1; while IFS= read -r line; do sed -i "s/400/$line/g" dir"$i"/textfile; ((i++)); done <datafile
Оригинал файлы, резервные копии которых сохранены с расширением .bak
:
i=1; while IFS= read -r line; do sed -i.bak "s/400/$line/g" dir"$i"/textfile; ((i++)); done <datafile