bash - 如何在 bash 中并排打印多个 .csv 文件并找出这 3 个文件之间的区别
问题描述
我有 3 个 .csv 文件如何获得它们之间的区别例如:
输入 :
SYMBOL QTY | SYMBOL QTY | SYMBOL QTY
A - 100 A - 100 A - 90
B - 100 B - 50 B - 100
输出:
A 90
B 50
试过:
join -t"," -1 1 -2 1 -a1 file1.csv file2.csv | awk -F, ' BEGIN {
print "ID,field,old,new"
} NF > 3 {
if ( $3 != $5 )
print $1, "cost", $3, $5
if ( $2 != $4 )
print $1, "version", $2, $4
} ' OFS=,
解决方案
您可以使用粘贴。
paste "yourFolderPath"/output1.csv "yourFolderPath"/output2.csv "yourFolderPath"/output3.csv > "yourFolderPath"/mergedFile.csv
请记住,粘贴的默认分隔符是制表符。您可以使用 -d 更改它以使用逗号。
paste -d ','
推荐阅读
- r - 如何从R中另一个数据框的变量自动制作一个新的数据框?
- php - 如何在for循环中使用uniqid?
- python-3.x - Python3中如何基于unicode码点将汉字写入文件
- php - 在 Bitrix 中,如何在 PHP 中设置列表类型的自定义字段?
- angular - 如何处理打字稿中共享可观察对象中的错误?
- windows - 在 Windows 上运行 Docker 脚本时如何替换“\r”行尾?
- gcc - LTO 和覆盖静态库中的 stdlib 函数
- java - 没有@Provides-annotated 方法就无法提供(Android Kotlin 中的 Dagger 2)
- php - PHP 返回值格式化
- c# - 抓枪在捡起时不会成为我玩家的孩子