使用数据逐个使用两个不同的变量来替换使用sed的单词

时间:2014-06-24 10:40:25

标签: bash shell 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名称的文件 现在我想通过用list1中的一个数据和list2中的一个数据替换那两个X Y来创建文件 说我必须创建4个文件 file1将具有A 1 file2将具有B 2,依此类推......

请帮帮我,因为我必须使用存储在这两个列表文件中的数据制作几个文件。

1 个答案:

答案 0 :(得分:3)

执行此操作的一种方法是使用paste加入list1.txtlist2.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