循环并合并2个文件

时间:2012-07-03 05:22:46

标签: awk paste

首先,请原谅我,我是一个菜鸟。 我的问题如下:

我有2个文本文件 - file1和file2。 以下是文件样本和所需的输出:

文件1:

A B C
D E F
G H I

file2的:

a1 a2 a3
b1 b2 b3
c1 c2 c3

期望的输出:

A B C a1 a2 a3
A B C b1 b2 b3
A B C c1 c2 c3
D E F a1 a2 a3
D E F b1 b2 b3
D E F c1 c2 c3

等等。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

awk 'FNR == NR {file2[FNR] = $0; c++; next} {for (i = 1; i <= c; i++) {print $0, file2[i]}}' file2 file1

将file2的所有行读入数组。对于file1的每一行,循环遍历数组并打印file1中的行和file2中的行。

在Bash中:

while read -r line
do
    file2+=("$line")
done < file2

while read -r line
do
    for line2 in "${file2[@]}"
    do
        echo "$line $line2"
    done
done < file1