有两个文本文件,以逗号分隔。第一个文件包含“学生编号,名字”,第二个文件包含“名字,成绩”。我需要对一个公共字段进行排序并将它们连接在一起,以便可以在一个输出中看到两个文件中除公共字段之外的所有其余字段。
输入文件1:
1001,詹姆斯
1020,破晓
1030,彼得
1040,丽莎
输入文件2:
james,80
peter,65
lisa,90
在这种情况下,公共字段是“名字”,并且输出应生成“他们的学生编号,年级”格式。
期望的输出
1001,80
1040,90
1030,65
1020,0
sort -b -t $',' -k 2b,2 $1 > file1_sorted.txt
sort -b -t $',' -k 1b,1 $2 > file2_sorted.txt
join -1 2 -2 1 -t $',' -o 1.1,2.2 -a 1 file1_sorted.txt file2_sorted.txt
这是我的代码的样子,但是没有任何结果和错误消息。您能帮我弄清楚是什么原因引起的吗?
非常感谢!
答案 0 :(得分:1)
使用bash和GNU排序:
join -1 2 -2 1 -t, -o 1.1,2.2 -a 1 -e 0 <(sort -t, -k2 file1) <(sort -t, file2)
输出:
1001,80 1040,90 1030,65 1020,0