我有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