使用bash读取两个文件的嵌套循环

时间:2019-06-11 13:08:44

标签: bash

我有两个文件(文件1和文件2)。 假设file1包含(A,B,C)并且file2包含(1,2,3) 我如何使用bash shell代码获得以下结果

A 1
B 2
C 3



    for i in `cat $file1`
       do
       for j in `cat $file2`
       do
       printf "%s %s\n" "$i" "$j"
       done
    done

我尝试了上面的代码,结果是类似

A 1
A 2
A 3
B 1
B 2
B 3
C 1
C 2
C 3

2 个答案:

答案 0 :(得分:2)

可以使用coreutils中的pr命令,也可以与其他命令/工具(例如粘贴)以及Shell和AWK脚本一起使用。 通过使用来自coreutils的命令可以省力,因为在命令行上只需要几个参数,就像下面的示例一样:

pr -TmJS" " file1 file2

其中:

  • -T关闭分页
  • -mJ合并文件,加入整行
  • -S" "用空白分隔列

答案 1 :(得分:1)

以下命令将起作用:

paste -d' ' file1 file2

paste coreutils实用程序逐行合并文件。 -d选项用于指定距离,即。这里的空间。