gpt4 book ai didi

linux - 在 csv 列中嵌入逗号的匹配模式

转载 作者:太空宇宙 更新时间:2023-11-04 09:25:37 26 4
gpt4 key购买 nike

我有一个每日脚本,需要在上传到数据库之前提取错误日志并从主 csv 文件中删除用户。我能够使用 awk 提取第一列并获得很好的结果。但是,我从第 3 方应用程序返回的错误在错误列中包含一个逗号。这会阻止完全匹配并导致问题。

这是我返回的错误文件的示例

"USER_ID","FIRSTNAME","LASTNAME","ERROR"
"CA781558","Dani","Roper","parent is inactive, cannot update record"
"BT055163","Alexis","Richardo","parent is inactive, cannot update record"
"LN764767","Peter","Rajosz","no parent record, update denied"
"SG839717","Jerry","Alindos","parent is inactive, cannot update record"

我需要精确匹配“parent is inactive, cannot update record”,以使用它来更新父记录,这样它就可以被更新。同样,我需要匹配“无父记录”,以便我可以为此记录和过程添加一个父记录。实际上,我有很多类似的错误消息需要不同的操作。使用逗号匹配准确的字符串非常重要。

预期的输出是:

"USER_ID"
"CA781558"
"BT055163"
"SG839717"

最佳答案

使用 awk 你可以这样做:

s='parent is inactive, cannot update record'
awk -v s="\"$s\"" -F, 'NR==1 || $0 ~ s{print $1}' file

"USER_ID"
"CA781558"
"BT055163"
"SG839717"

关于linux - 在 csv 列中嵌入逗号的匹配模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36871828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com