【问题标题】:grep in CSV fileCSV 文件中的 grep
【发布时间】:2021-11-20 12:13:25
【问题描述】:

可能已经写了很多关于此的文章,但我正在努力了解结构在 grep 中的工作原理,以便启动对 csv 文件的查询。

我正在处理的文件具有以下结构:

Field1, field2, field3, field4, field5
numeric, leter, numeric, characters, characters
12,F,27,finnish,english swedish french spanish
16,F,29,finnish,english swedish french spanish estonian 
30,F,19,finnish,english swedish french spanish 

基本上,我正在努力为 CSV 中的每个字段定义一个特定条件

下面是我想出的表达方式

grep -E "[1-9][[:digit:]][^,]\,F[^,]\,[23][^,]\,finnish[^,]\, spanish.*french |  french.*spanish

这里是我需要在 grep 中实现的搜索

first field --> numers above 10
scond field --> letter that matches F
third field --> numbers within a range
forth field --> chain of characters
fifth field --> chain of characters

我的耐心已经到了极限……:)

提前致谢,

【问题讨论】:

    标签: linux grep


    【解决方案1】:
    first field --> numers above 10
    scond field --> letter that matches F
    third field --> numbers within a range
    forth field --> chain of characters
    fifth field --> chain of characters
    

    awk 更适合这项工作,因为您可以用逗号分割记录,然后检查各个字段的所有条件:

    awk -F, '
       $1 > 10 && $2 == "F" && $3 >= 20 && $3 <= 30
       && $4 ~ /^finnish/ && $5 ~ /spanish.*french|french.*spanish/
    ' file
    
    12,F,27,finnish,english swedish french spanish
    16,F,29,finnish,english swedish french spanish estonian
    

    【讨论】:

    • 是的,我知道,但问题是需要使用 grep!无论如何谢谢
    • 除非是学术练习,否则 grep 不是解决此问题的正确工具
    猜你喜欢
    • 2016-09-24
    • 1970-01-01
    • 2018-02-24
    • 2012-12-26
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 2012-04-15
    • 2014-11-14
    相关资源
    最近更新 更多