繁体   English   中英

如何从 csv 文件中获取密钥的值唱 bash 脚本?

[英]How to get a value of key from csv file sing bash script?

假设我有如下的 csv 文件:

SNo,Name,Country,uniqueness
1,abs,US,randomStringHavingUniqueString
2,xyz,UK,randomString

现在,只有当它具有UniqueString作为唯一性列值的一部分时,我才想获得uniqueness的值。

我应该从这个 csv 中得到的值是randomStringHavingUniqueString因为这个字符串有子字符串UniqueString

此命令将获得所需的结果:

awk -F',' '$4 ~ "UniqueString" && NR > 1 {print}' file.csv

输出:

1,abs,US,randomStringHavingUniqueString

我正在删除标题,如果需要标题,则需要修改命令。

使用Miller和运行

mlr --c2n filter -S '$uniqueness=~"UniqueString"' then cut -f uniqueness input.csv

你有randomStringHavingUniqueString

一些细节:

  • filter -S '$uniqueness=~"UniqueString"'将字符串过滤器应用于uniqueness字段;
  • cut -f uniqueness在输出唯一uniqueness字段中具有。

我正在寻找的 bash 脚本是这样的

返回第一场比赛

grep 'UniqueString' path/to/file.csv|cut -f2 -d,|head -1

获取匹配数组

targets=($(grep 'UniqueString' path/to/file.csv|cut -f2 -d,))
for match in ${targets[@]}
do
    echo match
done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM