我需要重新格式化csv文件。从文件A中,我必须提取列nr3并将其写入文件B中的第5列
我用csvtool提取列:
csvtool col 3 fileA.csv如何将输出写入B文件中的第5列?更重要的是,如何使用Bash/peral写入csv文件的特定列?
我试过了,但错了。有什么解决办法吗?
csvtool pastecol 5 3 FileB.csv fileA.csv
Fatal error: exception Invalid_argument("List.map2")所需输出将进入文件B。
col1,col2,col3,col4, col5, ,col6,col7,col8
xxxx,xxxx,xxxx,xxx,valuefromfileA,xxx,xxxxx,xxx发布于 2019-08-19 12:59:55
让我用以下测试数据演示一下:
fileA
-----
row1
row2
fileB
-----
column1,column2,column3,column4,column5,column6
asdf,qwer,yxcv,tzui,jkl,bnm现在,您可以简单地使用paste合并文件的行,并使用awk交换某些列。
cat fileA | paste fileB - -d , | awk -v FS=, -v OFS=, '{print $1,$2,$3,$4,$7,$6}'当然,cat fileA代表您的csvtools。-参数中的paste是标准输入。-d ,将分隔符设置为逗号。FS=,对于awk也是一样的。OFS是具有逗号的输出字段分隔符。
结果:
column1,column2,column3,column4,row1,column6
asdf,qwer,yxcv,tzui,row2,bnmhttps://stackoverflow.com/questions/57555571
复制相似问题