BASH:在for循环中迭代两个v ariables

tol*_*boy 1 iteration bash for-loop

我有两个文件numbers.txt(1 \n 2 \n 3 \n 4 \n 5 \n)和alpha.txt(a \nn \nc \nd \ne \n)

现在我想同时迭代这两个文件.

   for num in `cat numbers.txt` && alpha in `cat alpha.txt`
   do 
   echo $num "blah" $alpha
   done
Run Code Online (Sandbox Code Playgroud)

或者我的其他想法是

   for num in `cat numbers.txt`
   do
     for alpha in `cat alpha.txt`
     do
      echo $num 'and' $alpha
      break
     done
   done
Run Code Online (Sandbox Code Playgroud)

但是这种代码总是采用$ alpha的第一个值.

我希望我的问题很清楚.

提前致谢.


这就是我实际打算做的事情.(这只是一个例子)

我还有一个文件说template.txt有内容.

    variable1= NUMBER
    variable2= ALPHA
Run Code Online (Sandbox Code Playgroud)

我想从两个文件中获取输出,即numbers.txt和alpha.txt(一次两行),并希望将NUMBER和ALPHA替换为这两个文件中的相应内容.

所以这就是我所做的,因为我知道如何将两个文件一起迭代.

    paste number.txt alpha.txt | while read num alpha
    do 
     cp template.txt  temp.txt
     sed -i "{s/NUMBER/$num/g}" temp.txt
     sed -i "{s/ALPHA/$alpha/g}" temp.txt
     cat temp.txt >> final.txt
    done
Run Code Online (Sandbox Code Playgroud)

现在我在final.txt中所拥有的是:

    variable1= 1
    variable2= a
    variable1= 2
    variable2= b
    variable1= 3
    variable2= c
    variable1= 4
    variable2= d
    variable1= 5
    variable2= e
    variable1= 6
    variable2= f
    variable1= 7
    variable2= g
    variable1= 8
    variable2= h
    variable1= 9
    variable2= i
    variable1= 10
    variable2= j
Run Code Online (Sandbox Code Playgroud)

它非常简单和愚蠢的方法.我想知道有没有其他方法可以做到这一点?

任何建议将不胜感激.

Che*_*evy 5

不,你的问题不够明确.具体来说,您希望迭代文件的方式尚不清楚,但假设您想要输出如下:

1 blah a
2 blah b
3 blah c
4 blah d
5 blah e
Run Code Online (Sandbox Code Playgroud)

您可以使用该paste实用程序,如下所示:

paste number.txt alpha.txt | while read alpha num ; do
    echo "$num and $alpha"
done
Run Code Online (Sandbox Code Playgroud)

甚至:

paste -d@ alpha num | sed 's/@/ blah /'
Run Code Online (Sandbox Code Playgroud)