目的
拼接两个没有相同列的文件。
$ 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
这个方法很赞。






网友评论