从1.csv中获取第一列,在第二个2.csv中查找

时间:2018-10-26 13:40:11

标签: bash shell

我想读取两个csv文件(a.csvb.csv)并编写一个状态为每列的新csv文件new.csv。我想用一个shell脚本来做到这一点。

A.csv

Inputfile_name,Date
abc.csv,2018/11/26  16.38.54 
bbc.csv,2018/11/26  15.28.11

B.csv

Outputfile_name,Date
abc_SUCCESS.csv,2018/11/26  17.20.11
bbc_FAIL.csv,2018/11/26  16.28.11

new.csv

Inputfile_name,Date,Outputfile_name,Date,Status
abc.csv,2018/11/26  16.38.54,abc_SUCCESS.csv,2018/11/26  17.20.11,SUCCESS
bbc.csv,2018/11/26  15.28.11,bbc_FAIL.csv,2018/11/26  16.28.11,FAIL

1 个答案:

答案 0 :(得分:0)

是这样吗?

$ paste -d, A.csv B.csv | sed -e 's/\(SUCCESS\|FAIL\).*/&,\1/'
Inputfile_name,Date,Outputfile_name,Date
abc.csv,2018/11/26 16.38.54,abc_SUCCESS.csv,2018/11/26 17.20.11,SUCCESS
bbc.csv,2018/11/26 15.28.11,bbc_FAIL.csv,2018/11/26 16.28.11,FAIL

paste可以按行串联两个文件的内容。借助sed,您可以执行搜索+替换操作,在每行的末尾添加SUCCESSFAIL