【问题标题】:how to remove delimiter from first column?如何从第一列中删除分隔符?
【发布时间】:2018-02-07 04:19:31
【问题描述】:

我有一个 Employee.csv 文件。从this link 下载。它看起来像sample data如您所见,在第一列中,名称包含分隔符(,)

NAME,JOB TITLE,DEPARTMENT,EMPLOYEE ANNUAL SALARY,ESTIMATED ANNUAL SALARY MINUS FURLOUGHS

这是列标题。下面是数据。

"AARON,  ELVIA J",WATER RATE TAKER,WATER MGMNT,$81000.00,$73862.00
"AARON,  JEFFERY M",POLICE OFFICER,POLICE,$74628.00,$74628.00

由于上面的数据有五列,我想读取五列中的数据。

  1. AARON ELVIA J 作为第一列(名称)。
  2. WATER RATE TAKER 作为第二列(职位)
  3. WATER MGMNT 作为第三列(部门)
  4. 81000 作为第四栏(员工年薪)
  5. 73862.00 作为第五列(估计年薪减去 FURLOUGHS)

其余行也是如此,因为最后我必须将数据加载到如上所述的具有五列的表中。

如何将整个数据读入五列?

【问题讨论】:

  • 出于这个原因,emp 名称在" 中。大多数解析器都很聪明地忽略撇号中的任何分隔符......
  • 你试过什么?您是否尝试过使用 awk?
  • 发布文本示例,而不是指向场外资源的链接。
  • edit 您的问题显示minimal reproducible example,包括简洁、可测试的样本输入和预期输出以及您迄今为止尝试过的内容。如果不清楚,请参阅How to Ask

标签: shell csv awk cut


【解决方案1】:

你只需要awk -F"," { print $1 } filename.txt

【讨论】:

    【解决方案2】:

    使用sed 删除第一个逗号。

    sed -i.bak -e 's/\(".*\),\(.*".*\)/\1 \2/' infile.txt 
    

    【讨论】:

      【解决方案3】:

      您可以使用 " 作为分隔符并使用 cut

      cat filename | cut -d '"' -f2 
      

      【讨论】:

      • 我已经尝试过了,但它不起作用。它返回整行作为输出
      • @shubhamtiwari 我认为你错过了一些东西。它对我有用。
      猜你喜欢
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      • 2023-02-06
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      相关资源
      最近更新 更多