如何使用awk合并多个文件

如何使用awk合并多个文件

我有2个文件

文件1:

Fruits
Mango
Orange
Banana

文件2:

Cost
100
80
40

预期输出:

Fruits    Cost
Mango  100
Orange  80
Banana  40

我怎样才能做到这一点awk

答案1

使用paste而不是awk为此。例如

$ paste file1 file2
Fruits  Cost
Mango   100
Orange  80
Banana  40

默认的输出列分隔符paste是制表符。您可以使用该-d选项来使用逗号、冒号、分号或任何您想要的内容。

答案2

如果你想使用 awk:

awk '{print $0, ((getline x < "-") == 1 ? x : "")}' file1 < file2

测试的返回值getline(成功返回 1)并相应地打印值。

答案3

使用该 Perl实用程序,我们可以并排粘贴两个文件,如下所示:

perl -pe '
  ($_ .= <STDIN>) =~ s/\n/ /;
' file1 < file2

使用GNU sed流编辑器的版本,我们可以将这两个文件粘贴为:

sed -e 'R file2' file1| sed -e 'N;s/\n/ /'

使用python实用程序,我们通过映射函数粘贴两个文件:

python3 -c 'import sys
file1,file2 = sys.argv[1:]
with open(file1) as f1, open(file2) as f2:
  print(*list(map(lambda x,y: f"{x.rstrip()} {y}",f1,f2)),sep="",end="")
' file1 file2

相关内容