【发布时间】:2011-04-06 15:15:38
【问题描述】:
我想合并 3 个 csv 文件。每个文件有 3 个逗号分隔的列。
File 1 has columns a,b,c
File 2 has columns d,e,f
File 3 has columns g,h,i
我想将这 3 个文件合并为一个文件:
a,b,c,e,f,h
我可以使用 sed 来做到这一点吗?
我可以很容易地编写控制台应用程序或脚本,但我正在尝试获得一些 sed 技能并认为这应该是一项合适的任务?
【问题讨论】:
-
您的合并标准是什么?为什么省略 "d","g","i" ?
-
您是否需要加入某些列(所以也许 a = d)?如果是这样,那么您需要查看
join命令(Unix 世界中比较奇怪的命令之一)。请记住,数据需要按排序顺序排列,并决定如果其中一个文件中没有匹配值(DBMS 用语中的外连接)中的匹配值该怎么做。否则,如果它是纯粹的位置(文件 1 中的第 1 行与文件 2 中的第 1 行和文件 3 中的第 1 行),那么下面显示的粘贴和剪切命令是好的。使用“sed”很难(充其量);它一次处理一个文件,而不是并行处理 3 个。