目的
拼接两个没有相同列的文件。
$ cat file1
aaaaaa
bbbbbb
cccccc
dddddd
$ cat file2
111111
222222
33333
使用 join
首先考虑 join
。先输出行号,再利用行号 join
.
$ awk '{print NR,$1}' file1 > file1.tmp
$ awk '{print NR,$1}' file2 > file2.tmp
$ join file1.tmp file2.tmp | awk '{print $2,$3}'
aaaaaa 111111
bbbbbb 222222
cccccc 33333
使用 awk
$ awk '{a="NULL";getline a < "file2" ;print $0,a}' file1
aaaaaa 111111
bbbbbb 222222
cccccc 33333
dddddd NULL
解释一下
-
getline
获取file2
中的每一行 - 若获取不到,变量
a
的值为NULL
这个方法很赞。
网友评论