我使用标准join命令基于column1连接两个已排序的文件.该命令是简单的join file1 file2> output_file.
但是如何使用相同的技术加入3个或更多文件?join file1 file2 file3> output_file上面的命令给了我一个空文件.我认为sed可以帮助我,但我不太确定如何?
我有以下代码将多个文件连接在一起.它工作正常,但我想将空值替换为0,所以我使用-e"0".但它不起作用.有任何想法吗?
for k in `ls file?`
do
if [ -a final.results ]
then
join -a1 -a2 -e "0" final.results $k > tmp.res
mv tmp.res final.results
else
cp $k final.results
fi
done
Run Code Online (Sandbox Code Playgroud)
例:
file1:
a 1
b 2
file2:
a 1
c 2
file3:
b 1
d 2
Results:
a 1 0 1 0
b 2 1 0
c 2
d 2
expected:
a 1 1 0
b 2 0 1
c 0 2 0
d 0 0 2
Run Code Online (Sandbox Code Playgroud)