linux - 删除 CSV 文件中多余的逗号和双引号并提取特定列

标签 linux ubuntu csv awk

我有一个如下所示的 .csv 文件,我需要删除双引号之间多余的逗号并提取第 2、3 和 7 个字段。

示例输入:

John,qa,mv,tom,"principal, qa",6501234567,john@gmail.com

输出应该是这样的:

qa,mv,john@gmail.com

最佳答案

您需要使用合适的 CSV 解析器。例如,使用 ruby :

echo 'John,qa,mv,tom,"principal, qa",6501234567,john@gmail.com' | 
ruby -rcsv -ne '
  row = CSV.parse_line($_)
  puts CSV.generate_line([row[1],row[2],row[6]])
'
qa,mv,john@gmail.com

关于linux - 删除 CSV 文件中多余的逗号和双引号并提取特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24127401/

相关文章:

ubuntu - 启动时间慢

c++ - 在Qt5应用程序上读取CSV文件时出现无限循环

Powershell 文件输出大小的两倍

linux - grep 递归 + 反向词 + 最后一场比赛

r - 在动画包中使用 SaveGIF 函数找不到 'convert'

linux - 在 64 位 Linux 上运行 32 位应用程序的性能如何?

ubuntu - 如何编写每天午夜运行脚本的 cron?

powershell - 使用 powershell 向现有 CSV 文件添加 header

linux - cassandra如何能够通过硬链接(hard link)执行快照?

linux - OpenOffice.org 模板在 Linux 中的位置是什么?