shell - 根据匹配词将 csv 拆分为多个 csv
问题描述
我有以下 csv
TEST,FILENAME1,COL3,COL4
AAAA,BBBBBBBB,CCCC,DDDD
DBDB,HHHDHHHD,UJUJ,UUUU
TEST,FILENAME2,COLX,COLY
1111,222222,2233,3333
33434,45566,6777,77777
jlkwj,reopwr,rewok,ewopk
我想将上述文件拆分为 2 个文件。在解析过程中,如果我得到一个名为 TEST 的关键字,我想创建一个新文件,所有后续内容都应该转到一个新文件,并且 TEST 关键字旁边的列应该是文件名
所以上面的例子中的文件应该被分割为
文件名1.csv
TEST,FILENAME1,COL3,COL4
AAAA,BBBBBBBB,CCCC,DDDD
DBDB,HHHDHHHD,UJUJ,UUUU
文件名2.csv
TEST,FILENAME2,COLX,COLY
1111,222222,2233,3333
33434,45566,6777,77777
jlkwj,reopwr,rewok,ewopk
是否有可以为我执行此操作的 awk 命令?我有很多包含此内容的 csv,我想将它们中的每一个再次拆分为更小的块
解决方案
awk -F, '$1=="TEST"{close(out); out=$2".csv"} {print > out}' file.csv
推荐阅读
- mysql - 为什么我的 SQL 命令出现错误?
- c# - 以编程方式使用 docker 并捕获标准输出
- python - 如何在pyqt中创建一个滚动区域
- c++ - 从成员指针转换为整个结构/类
- google-kubernetes-engine - 如何让我的 Cloud Run(托管)应用程序访问我的 GKE 集群服务?
- vba - 为什么 VBA dim 语句的行为取决于声明的变量数量?
- php - 使用 jQuery 和 ajax 在 WordPress 中发送电子邮件
- go - 检查来自golang文件的字符串是否存在于yaml文件中
- python - 连体神经网络 - Python 模块对象不可调用
- r - R/Windows 10 和 R-Studio/Debian GNU Linux 9 之间 RMySQL::dbWriteTable 的主要性能差异