#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