[英]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.