【发布时间】:2018-09-17 22:23:40
【问题描述】:
我有一个包含 11 列内容相似的 CSV 文件
SE Australia|PRM|2017-09-07T16:11:33|2641|-5537383165259899960|2017-09-07T16:12:17|"AU en2|networking-locator"|-|SC7_Electricians_Installer (only provides labor)|p-0715125|1
我正在尝试使用 awk 来分隔每一列,问题是在 1000 万条记录中的某些句子中,分隔符(pip)是单词的一部分。正如您在下面看到的,pip 包含在文本 “AU en2|networking-locator” 中。使用以下命令会返回错误信息。
awk -F "|" '{print $4"_"$6"_"$7"_"$10}'
结果
2641_2017-09-07T16:12:17_"AU en2_p-0715125
异常结果,
2641_2017-09-07T16:12:17_"AU en2|networking-locator"_p-0715125
正如您所见,AU en2 被视为一个单独的列,但是,它是 AU en2|networking-locator 的一部分。如何更改 awk 命令以覆盖这些列?
【问题讨论】:
-
您的样本输入和样本输出不清楚?请用代码标签更清楚地发布它们,然后让我知道。
-
@RavinderSingh13 我说清楚了。
-
现在请检查我的代码,如果这对您有帮助,请告诉我?
-
@EdMorton 这是一个错误,我已经编辑过了。对不起。
标签: linux awk text-processing