开发者社区> 问答> 正文

根据另一列从.csv文件中提取特定列

我试图仅在另一列(称为y)包含等于1的项的情况下提取列的值(称为x),如果该条目等于0(或其他任何值),那么我希望它被忽略。然后,将以特定格式将x列的条目写入文件。

我已经尝试使用while read lineand in if语句来做到这一点,但是因为我已经while read line在提取列y值中使用了,所以我很难使其工作。显示了如何提取y列并将其保存到文件中。

cut -d "," -f4 $input| sed '1d' | while read line;
do
printf -- "- name: `echo "$line" | tr a-z A-Z`\n  search_string: ['$line']\n  exact_match: False\n" >> output.txt
done

果不清楚,则x列为处理列,y列为监视列。

如果有人有任何想法,我将不胜感激。

展开
收起
祖安文状元 2020-01-08 15:48:14 479 0
1 条回答
写回答
取消 提交回答
  • awk -F, -v input="$input" '$4==1 && $3==input{
         printf "name: %s\nsearch_string: [%s]\nexact_match: False\n", toupper($3), $3 }' input.csv
    
    

    如果您process1在shell变量中具有值“ ” ,则上述“ awk-oneliner”将提供以下输出$input。您可以更改该$input值以获得不同的结果。

    name: PROCESS1
    search_string: [process1]
    exact_match: False
    
    2020-01-08 15:48:23
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载