与其他文件相比,如何替换文件中的列值?
我有两个文件test1.csv和test2.csv;如果test1.csv的值为“符号*”,则需要替换test1.csv中的empdep列。第二个文件test2.csv具有替换“符号*”所需的值。
注意:我使用的是ksh和test1.csv大约有2,048,576行,test2.csv有10000行。
test1.csv
empname,place,empdep
aaaa,city1,001
bbbb,city2,sign-1
dddd,city1,005
ffff,city5,sign-2
hhhh,city7,sign-1test2.csv
empname,new
aaaa,001
bbbb,002
cccc,003
dddd,005
eeee,006
ffff,007
gggg,008
hhhh,009预期结果:
empname,place,empdep
aaaa,city1,001
bbbb,city2,002
dddd,city1,005
ffff,city5,007
hhhh,city7,009发布于 2020-07-26 17:59:39
csv-merge -N t1 -p test1.csv -N t2 -p test2.csv |
csv-sqlite -T 'select t1.empname, t1.place, case when t1.empdep like "sign%" then t2.new else t1.empdep end as empdep
from t1 left join t2 on t1.empname = t2.empname'csv-merge和csv-sqlite来自https://github.com/mslusarz/csv-nix-tools。
https://unix.stackexchange.com/questions/579192
复制相似问题