bash - 加入命令未显示预期结果
问题描述
逗号分隔的版本中有两个文本文件。第一个文件包含“学号,名字”,第二个文件包含“名字,年级”。我需要对一个公共字段进行排序并将它们连接在一起,以便我可以在一个输出中看到两个文件中除公共字段之外的所有剩余字段。
输入文件 1:
1001,詹姆斯
第1020章
1030,彼得
第1040章
输入文件 2:
詹姆斯,80
彼得,65
丽莎,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
这就是我的代码的样子,但它没有给我任何结果和错误消息。你能帮我弄清楚是什么导致了这里的问题吗?
非常感谢!!
解决方案
使用 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
推荐阅读
- r - 如何更改直方图的 y 轴,使其成为 r 中的密度函数?
- c# - WebClient.DownloadString(),带有 ./ 的 URL
- react-native - 替代谷歌地方自动完成反应原生项目?
- python - 通过 2 个组合组合框提取数据库字段。提取函数中的问题
- java - 如何使用 aws sdk v2 将对象复制到不同的亚马逊账户?
- xcode - Xcode - 在 Xcode 中编译时 FCM 出现离子/问题
- node.js - 为什么在 Jest 测试期间堆中充满了 GC 根中的 react-dom.development 字符串?
- python - 在保留总节点值的同时隐藏 plotly sankey 节点和链接
- spring - 创建名为“activityController”的 bean 时出错
- node.js - 使用 Electron BrowserWindow() 的电子滚动问题;