использование данных по одному из двух разных переменных для замены слов с помощью sed

#bash #shell #sed

#bash #оболочка #sed

Вопрос:

У меня есть два файла, которые говорят list1.txt и list2.txt

  • list1.txt назовите какое-нибудь имя, скажем, A B C D
  • list2.txt пусть несколько имен произнесут 1 2 3 4

Я сохранил эти два списка данных в двух переменных, скажем

 var1=$(<list1.txt)
var2=$(<list2.txt)
  

У меня есть другой файл, содержащий имена X Y в этом
Теперь я хочу создавать файлы, заменяя эти два X Y на один данные из list1 и один на list2
Допустим, мне нужно создать 4 файла
, в file1 будет 1 файл, в file2 будет B 2 и так далее…

Пожалуйста, помогите мне, поскольку мне нужно создать несколько файлов с данными, хранящимися в этих двух файлах списка.

Ответ №1:

Один из способов сделать это — использовать paste для объединения соответствующих строк list1.txt и list2.txt , а затем использовать split для разделения результата на несколько выходных файлов, по одной строке на файл.

 split -a 1 -d -l 1 <(paste -d" " list1.txt  list2.txt) out
  

Другой способ — использовать массивы:

 arr1=( $(<list1.txt) )
arr2=( $(<list2.txt) )

for (( i=0; i<${#arr1[@]}; i   ))
do
     echo "${arr1[$i]} ${arr2[$i]}" > "out$i"
done