【发布时间】:2014-12-30 20:07:17
【问题描述】:
全部,
我希望使用以下行解析 csv 文件
00000000-0000-0265-2510-017132647704,5690OD64_0W24zjsK-5GLmwjntrVyLDZhrmS,1,11/1/2014 7:29:02 AM,23435830,11179745,868,360655,69844,64637,43755,,,122.111.9.107,36,28389,-1,11677,3166,,0,11,,Apple iPad,,-1,-1,MM_CLD_Standard_Agency_43755_Daily_141101_00.csv
我需要使用两个分隔符来解析文件
"," & "_"
下划线出现在第二列和最后一列。目前我正在使用 awk 来解析文件,如下所示,但是您注意到 col2 中出现下划线导致文件被意外解析。我想知道如何在 col2 中转义下划线,以便我从最后一列中拉出的字符串不受影响
awk -F "," 'BEGIN {OFS=","} {$23="";print $4,$3,$2,$6,FILENAME}' $i|tail -n +2|awk -F ",|_" 'BEGIN {OFS=","} {print $1,$2,$3,$4,$10}'
所需的输出将是
11/1/2014 7:29:02 AM,1,5690OD64_0W24zjsK-5GLmwjntrVyLDZhrmS,11179745,141101
非常感谢,
【问题讨论】:
-
你的预期输出是什么?
-
不要通过
FS拆分两者。通过FS拆分,并在两个需要的字段上手动使用split。 -
时间怎么到了
7:29:54? -
@EtanReisner,你能举个例子吗?
-
再试一次,保持简单。您不需要包含 30 个字段(或其他任何字段)的行来描述您的问题,并且单行无法充分说明问题。只需发布 3 或 4 行示例输入,每行都有 4 或 5 个字段来演示您的问题以及该输入的相关预期输出。您越容易让我们为您提供帮助,我们就越有可能这样做。
标签: bash parsing csv awk delimiter