我有这两个文件包含相同的内容,也就是说:
$ 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