TPT脚本忽略双引号中的逗号分隔符

时间:2019-07-08 14:26:43

标签: shell unix teradata teradata-sql-assistant

  

我已经编写了一个TPT脚本以将csv文件加载到Teradata

A,   B,   C,   D

1,"hELL,O", 345,,, ME
2,"HELLO,34" 456,,, REC
3,"QWERTY,45", 456,,, WER
  

B列也有双引号和逗号。我想忽略双引号内的逗号

我在tpt中使用以下属性。请建议它是否可以在TPT脚本中处理或需要在csv文件中执行shell命令(sed,awk命令来处理)

    (
      VARCHAR DirectoryPath = '/home/xyz/',
      VARCHAR FileName = @file_name,
      VARCHAR Format = 'Delimited',
      VARCHAR OpenMode = 'Read',
      VARCHAR TextDelimiter = ',',
      VARCHAR NullColumns = 'Y',
      INTEGER SkipRows = 1,
      VARCHAR SkipRowsEveryFile = 'Y'
)````

Unix Command, that I tried to replace comma with pipe and to ignore comma in double quotes

````awk 'BEGIN { FPAT="([^,]+)|(\"[^\"]+\")"; OFS="|" } $1=$1' $FILE_NAME_OUT1 > $FILE_NAME_OUT2

它不起作用,正在删除列字段(逗号)

例如:-

A,   B,   C,   D

1|"hELL,O"| 345| ME
2|"HELLO,34" 456| REC
3|"QWERTY,45"| 456| WER

请对此提出建议。

0 个答案:

没有答案