为两个文件创建第一列

为两个文件创建第一列

我有这两个文件包含相同的内容,也就是说:

$ cat fileA.txt fileB.txt
1 2 3 
4 5 6 
7 8 9

对文件 fileA.txt 和 fileB.txt 进行过滤,这样会创建两个新文件,每个新文件的第一列分别包含字母 A 和 B。例如:

$ cat fileAa.txt
A 1 2 3
A 4 5 6
A 7 8 9

想到了awk '{print "A",$0}' fileA.txt,但我真的不知道如何让两个文件同时运行,我想为了就足够了

答案1

虽然你当然可以使用 shell 循环,Awk 完全能够直接处理多个文件,例如

$ head file{A,B}.txt
==> fileA.txt <==
1 2 3
4 5 6
7 8 9

==> fileB.txt <==
1 2 3
4 5 6
7 8 9

然后

$ awk '{print v, $0 > "file" v "a.txt"}' v=A fileA.txt v=B fileB.txt

生产

$ head file{A,B}a.txt
==> fileAa.txt <==
A 1 2 3
A 4 5 6
A 7 8 9

==> fileBa.txt <==
B 1 2 3
B 4 5 6
B 7 8 9

相关内容