我有这个CSV档案
ID,col1,col2,col3
1,,,FALSE
2,,,FALSE
3,,,FALSE
4,,,FALSE
我想使用ID列将其与其他CSV文件一起加入
ID,col1
2,AA
3,BB
获取(实际输出必须是另一个CSV,这里有一个漂亮的打印输出,以提高可读性)
+----+------+------+-------+
| ID | col1 | col2 | col3 |
+----+------+------+-------+
| 1 | - | - | FALSE |
| 2 | AA | - | FALSE |
| 3 | BB | - | FALSE |
| 4 | - | - | FALSE |
+----+------+------+-------+
最后当col1
不为空时,col3
必须TRUE
+----+------+------+-------+
| ID | col1 | col2 | col3 |
+----+------+------+-------+
| 1 | - | - | FALSE |
| 2 | AA | - | TRUE |
| 3 | BB | - | TRUE |
| 4 | - | - | FALSE |
+----+------+------+-------+
使用某些Linux命令行实用程序或bash脚本怎么做?
您可以使用Miller(https://github.com/johnkerl/miller)。跑步
mlr --csv join --ul -j ID -f input01.csv then put -S 'if ($col1!=""){$col3="TRUE"}' then sort -n ID input02.csv >output.csv
你将会拥有
+----+------+------+-------+
| ID | col1 | col2 | col3 |
+----+------+------+-------+
| 1 | - | - | FALSE |
| 2 | AA | - | TRUE |
| 3 | BB | - | TRUE |
| 4 | - | - | FALSE |
+----+------+------+-------+
一些注意事项:
join
使用ID
字段运行连接;put
检查col1是否不为空;sort
按ID对记录进行排序本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句