例如我有2个文件
First.txt
John 5
Kate 3
Bob 1
Second.txt
Bob 4
John 3
Kate 2
在这里我不知道该怎么做,创建第三个文件,看起来像这样:
John 3 5
Kate 2 3
Bob 1 4
我正在尝试使用'awk','sort',但无法找到解决方案。谢谢你的帮助。
答案 0 :(得分:1)
join
实用程序在这里很有用,但它希望对文件的内容进行排序:
$ join <(sort first.txt) <(sort second.txt)
Bob 1 4
John 5 3
Kate 3 2
我知道它与您的示例输出不完全相同,但也许足以满足您的目的?
<强>更新强>
因此,您似乎想要对每行的值进行排序,因此,我想,您希望John 5 3
而不是John 3 5
。一种方法:
join <(sort a) <(sort b) | awk '{ if ($2 < $3) print $0; else print $1, $3, $2 }'
答案 1 :(得分:0)
#! /bin/bash
SF=""
SL=""
cat f.txt s.txt|sort|while read L; do
#echo $L
declare -a A=($L)
if [ $SF == ${A[0]} ]; then
echo $SL ${A[1]}
else
SF=${A[0]}
SL=$L
fi
done