Convert CSV file (with double quoted strings) to pipe delimited file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Convert CSV file (with double quoted strings) to pipe delimited file
# 1  
Old 08-26-2011
Convert CSV file (with double quoted strings) to pipe delimited file

Hi, could some help me convert CSV file (with double quoted strings) to pipe delimited file:

here you go with the same data:

Code:
1,Friends,"$3.99 per 1,000 listings",8158

here " 1,000 listings " should be a single field.

Thanks,
Ram

Last edited by Ram.Math; 08-26-2011 at 07:01 AM.. Reason: Code tags.
# 2  
Old 08-26-2011
Expecting this .. ??
Code:
$ sed 's,\,,|,g' inputfile
1|Friends|"$3.99 per 1|000 listings"|8158

# 3  
Old 08-26-2011
I'm expecting like this:

Code:
1|Friends|$3.99 per 1,000 listings|8158


Last edited by radoulov; 08-26-2011 at 06:59 AM.. Reason: Code tags.
# 4  
Old 08-26-2011
Quote:
Originally Posted by jayan_jay
Expecting this .. ??
Code:
$ sed 's,\,,|,g' inputfile
1|Friends|"$3.99 per 1|000 listings"|8158

I would also do the same based on his/her requirement. but the output looks.... strange Smilie
# 5  
Old 08-26-2011
With GNU awk 4:

Code:
awk '{
  for (i = 0; ++i <= NF;) {
    if (substr($i, 1, 1) == "\"") {
      len = length($i)
      $i = substr($i, 2, len - 2)
      }
    printf "%s", ($i (i < NF ? OFS : RS))  
    }
  }' OFS=\| FPAT='([^,]+)|("[^"]+")' infile

With Perl:

Code:
perl -MText::ParseWords -nle'
  print join "|", parse_line(",",0, $_);
  ' infile

# 6  
Old 08-26-2011
this should work 4 u:
Code:
awk -F'"' '{gsub(/,/,"|",$1);gsub(/,/,"|",$3);} 1' yourFile

example output:
Code:
kent$  echo '1,Friends,"$3.99 per 1,000 listings",8158'|awk -F'"' '{gsub(/,/,"|",$1);gsub(/,/,"|",$3);} 1' 

1|Friends| $3.99 per 1,000 listings |8158

# 7  
Old 08-26-2011
it just errors:
Code:
awk: illegal statement near line 1
awk: bailing out near line 1


Last edited by radoulov; 08-26-2011 at 07:23 AM.. Reason: Code tags.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Linux convert Comma delimited file to pipe

I have file in linux with comma delimited and string fields in double quotations ", I need to convert them to pipe delimiter please share your inputs. Example: Input: "2017-09-30","ACBD,TVF","01234",NULL,18,NULL,"686091802","BANK OF ABCD, LIMITED, THE",790456 Output: ... (4 Replies)
Discussion started by: shieksir
4 Replies

2. Shell Programming and Scripting

Convert pipe demilited file to vertical tab delimited

Hi All, How can we convert pipe delimited ( or comma ) file to vertical tab (VT) delimited. Regards PK (4 Replies)
Discussion started by: prasson_ibm
4 Replies

3. Shell Programming and Scripting

UNIX/PERL script to convert XML file to pipe delimited format

Hello, I need to get few values from a XML file and output needs to be written in another file with pipe delimited format. The Header & Footer of the Pipe Delimited file will be constant. The below is my sample XML file. I need to pull the values in between the XML tags <Operator_info to... (15 Replies)
Discussion started by: karthi1305561
15 Replies

4. UNIX for Dummies Questions & Answers

Need to convert a pipe delimited text file to tab delimited

Hi, I have a rquirement in unix as below . I have a text file with me seperated by | symbol and i need to generate a excel file through unix commands/script so that each value will go to each column. ex: Input Text file: 1|A|apple 2|B|bottle excel file to be generated as output as... (9 Replies)
Discussion started by: raja kakitapall
9 Replies

5. Shell Programming and Scripting

Pivoting csv field from pipe delimited file

Hello All, Thanks for taking time to read through the thread and for providing any possible solution. I am trying to pivot a comma separated field in a pipe delimited file. Data looks something like this: Field1|Field2 123|345,567,789 234|563,560 345|975,098,985,397,984 456|736 Desired... (8 Replies)
Discussion started by: svks1985
8 Replies

6. Shell Programming and Scripting

How to convert space&tab delimited file to CSV?

Hello, I have a text file with space and tab (mixed) delimited file and need to convert into CSV. # cat test.txt /dev/rmt/tsmmt32 HP Ultrium 6-SCSI J3LZ 50:03:08:c0:02:72:c0:b5 F00272C0B5 0/0/6/1/1.145.17.255.0.0.0 /dev/rmt/c102t0d0BEST /dev/rmt/tsmmt37 ... (6 Replies)
Discussion started by: prvnrk
6 Replies

7. Shell Programming and Scripting

Convert csv to pipe delimited except the ones in double quotes

I have a csv data file : A,B,C,D,"A,B",E,"GG,H" E,F,G,H,I,J,"S,P" I need to replace all "," with "|" except the ones between double quotes i.e A|B|C|D|"A,B"|E|"GG,H" E|F|G|H|I|J|"S,P" CAn someone assist? (8 Replies)
Discussion started by: Shivdatta
8 Replies

8. Shell Programming and Scripting

How to convert a space delimited file into a pipe delimited file using shellscript?

Hi All, I have space delimited file similar to the one as shown below.. I need to convert it as a pipe delimited, the values inside the pipe delimited file should be as highlighted... AA ATIU2345098809 009697 005374 BB ATIU2345097809 005445 006518 CC ATIU9685098809 003215 003571 DD... (7 Replies)
Discussion started by: nithins007
7 Replies

9. Shell Programming and Scripting

convert a pipe delimited file to a':" delimited file

i have a file whose data is like this:: osr_pe_assign|-120|wg000d@att.com|4| osr_evt|-21|wg000d@att.com|4| pe_avail|-21|wg000d@att.com|4| osr_svt|-11|wg000d@att.com|4| pe_mop|-13|wg000d@att.com|4| instar_ready|-35|wg000d@att.com|4| nsdnet_ready|-90|wg000d@att.com|4|... (6 Replies)
Discussion started by: priyanka3006
6 Replies

10. Shell Programming and Scripting

How to convert tab delimited file to .csv file

Hi, Can any one please help me in converting a tab delimited file in .csv file. Records in my file are similar to mentioned below: DET 001 0201 AC032508970 01478E1X8 DET 002 0202 AC032508971 01478E1X8 Could any one please suggest me what approach would be more suitable for this or if... (5 Replies)
Discussion started by: dtidke
5 Replies
Login or Register to Ask a Question