regex - 检查第 1 列的值是否存在于第 2 列的任何位置,将结果写入第 3 列(CSV 文档)
问题描述
我正在寻找一种方法来检查第一列(产品名称)的值是否存在于第二列(产品变体)中的任何位置,并将结果(匹配/不匹配)写入 CSV 文档的第三列。
由于此任务可能会重复出现,因此我想开始为此编写脚本。
csv 文档当前的结构如下(第三列不包含匹配项):
"PRODUCT";"VARIANT";"MATCH"
"100 DG";"black";""
"100 DG";"100 DG black";""
"100 DG";"silver 100 DG";""
"100 DG";"silver 100 DG US edition";""
...
结果应如下所示:
"PRODUCT";"VARIANT";"MATCH"
"100 DG";"black";"no"
"100 DG";"100 DG black";"yes"
"100 DG";"silver 100 DG";"yes"
"100 DG";"silver 100 DG US edition";"yes"
...
所以,我想将结果写入第三列:
- 如果包含写“是”
- 如果不包含写“否”
我有一段时间没有做过这种事情了,感谢您的帮助。
解决方案
与米勒(https://github.com/johnkerl/miller)是
mlr --csv --fs ";" put -S 'if ($VARIANT=~$PRODUCT)
{$MATCH="yes"}
else
{$MATCH="no"}' input_01.csv
或在一行中
mlr --csv --fs ";" put -S 'if ($VARIANT=~$PRODUCT) {$MATCH="yes"} else {$MATCH="no"}' input_01.csv
推荐阅读
- java - Apache Flink - 事件时间窗口
- vue.js - vuetable-2 中的 Vue-multiselect v-model="value[?]"
- java - 无法使用 graphql-spring 初始化代理
- node.js - Loopback 3 模型“属于”其他模型的许多实例
- java - 将 HTTP 帖子从 ruby 转换为 java 或 groovy
- ios - 如何在 Objective C 的 applogic pod 库中调用我的 ViewController
- parse-platform - response.error 不是 Parse Cloud Code 中的函数
- jquery - 删除事件监听器ajax
- amazon-web-services - 通过 IP 限制对 S3 的访问我做错了什么?
- angular - 在 Angular 6 中更改多个图标 onclick