【发布时间】:2022-01-19 22:19:54
【问题描述】:
如果之前有人问过这个问题,我深表歉意。我看过但找不到满意的答案。
我有这个示例文件 test.csv:
"abc","def,apple","2019-10-10"
我想根据最后一个字段中的日期输出任何第一个字段。这个我试过了
gawk -vFPAT='[^,]*|"[^"]*"' '($3 >= "2018-10-10") {print $1}' test.csv
但输出为空。
如果我删除 test.csv 中日期周围的引号,则上述方法有效。该命令输出“abc”。我有一个遵循上述模式的长文件,我确信我可以使用简单的正则表达式来删除日期周围的引号,但是有没有办法通过更改上述 gawk 命令来避免这种情况?
【问题讨论】:
-
由于您已经在使用 gawk,因此将
gensub添加到条件中以仅在比较中删除引号:(gensub(/^"|"$/,"","g",$3) >= "2019-10-10") -
谢谢!这对我有用!我很高兴了解到“gensub”!