replace value with double quotes of specific coulmn value in csv file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting replace value with double quotes of specific coulmn value in csv file
# 1  
Old 08-03-2009
replace value with double quotes of specific coulmn value in csv file

Hi,

I am trying to replace a specific column values in a csv file with double quotes.

Example:

SNO,NAME,ZIPCODE,RANK
1,Robert,74538,12
2,Sam,07564,13
3,Kim, Ed,12345,14

Desired Output:

SNO,NAME,ZIPCODE,RANK
1,Robert Ken,74538,12
2,Sam Mik,"07564",13
3,"Kim, Ed",12345,14

I would like to replace the zipcode value with double quotes when I find a leading zeros for the zipcode. Also, I would like to replace the name in double quotes when I found a comma with in the name.

Please throw your ideas Smilie

Thanks,
moris.
# 2  
Old 08-03-2009
This should do:

Code:
#  sed -e 's/,\(0[0-9]*\)/,\"\1\"/g'  -e 's/,\([A-Za-z]*, [A-Za-z]*\),/,\"\1\",/g' file
1,Robert,74538,12
2,Sam,"07564",13
3,"Kim, Ed",12345,14

HTH

Last edited by Tytalus; 08-03-2009 at 01:12 PM.. Reason: minor tweak for cleaner code
# 3  
Old 08-03-2009
Thanks - Working perfectly

Hi,

Thanks!!

I can see the results exactly as desired. can you please tell me how I can overwrite to the original file in the shell script..

# sed -e 's/,\(0[0-9]*\)/,\"\1\"/g' -e 's/,\([A-Za-z]*, [A-Za-z]*\),/,\"\1\",/g' file

Thanks once again Smilie-

-Moris

---------- Post updated at 02:05 PM ---------- Previous update was at 12:24 PM ----------

I got it thanks...all I have to do is to redirect to a file.

---------- Post updated at 04:43 PM ---------- Previous update was at 02:05 PM ----------

Any idea on how to handle patten matching on blank space.

Ex: 34 Robert

I am not sure about the number of occurances of blank spaces between 34 and Robert so any idea on like to how to check something for the blank spaces.
# 4  
Old 08-03-2009
Code:
while(<DATA>){
	s/(?:([a-zA-Z]*, [a-zA-Z]*)|((?<=,)(0[0-9]+)(?=,[0-9]+$)))/'"'.(($1 eq "")?$2:$1).'"'/eg;
	print;
} 
__DATA__
SNO,NAME,ZIPCODE,RANK
1,Robert Ken,74538,12
2,Sam Mik,07564,13
3,Kim, Ed,12345,14

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace Double quotes within double quotes in a column with space while loading a CSV file

Hi All, I'm unable to load the data using sql loader where there are double quotes within the double quotes As these are optionally enclosed by double quotes. Sample Data : "221100",138.00,"D","0019/1477","44012075","49938","49938/15043000","Television - 22" Refurbished - Airwave","Supply... (6 Replies)
Discussion started by: mlavanya
6 Replies

2. Shell Programming and Scripting

Shell script that should remove unnecessary commas between double quotes in CSV file

i have data as below 123,"paul phiri",paul@yahoo.com,"po.box 23, BT","Eco Bank,Blantyre,Malawi" i need an output to be 123,"paul phiri",paul@yahoo.com,"po.box 23 BT","Eco Bank Blantyre Malawi" (5 Replies)
Discussion started by: mathias23
5 Replies

3. Shell Programming and Scripting

Replace double quotes with a single quote within a double quoted string

Hi Froum. I have tried in vain to find a solution for this problem - I'm trying to replace any double quotes within a quoted string with a single quote, leaving everything else as is. I have the following data: Before: ... (32 Replies)
Discussion started by: pchang
32 Replies

4. Shell Programming and Scripting

How to delete the commas in a .CSV file that are enclosed in a string with double quotes?

Okay, I would like to delete all the commas in a .CSV file (TEST.CSV) or at least substitute them with empty space, that are enclosed in double quote. Please see the sample file as below: column 1,column 2,column 3,column 4,column 5,column 6,column 7,column 8,column 9,column 10... (8 Replies)
Discussion started by: dhruuv369
8 Replies

5. 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

6. Shell Programming and Scripting

HELP with AWK or SED. Need to replace the commas between double quotes in CSV file

Hello experts, I need to validate a csv file which contains data like this: Sample.csv "ABCD","I",23,0,9,,"23/12/2012","OK","Street,State, 91135",0 "ABCD","I",23,0,9,,"23/12/2012","OK","Street,State, 91135",0 I just need to check if all the records contain exactly the number of... (5 Replies)
Discussion started by: shell_boy23
5 Replies

7. Shell Programming and Scripting

Excel CSV with Double Quotes and Carriage Returns

Hi List, I am sure this issue must have been encountered before. I have saved an excel CSV and sent it to my linux box where I require to parse it as a CSV line by line. The file displays fine in Excel with csv headers and consistent records and fields. However when I look at it in linux I see... (2 Replies)
Discussion started by: landossa
2 Replies

8. Shell Programming and Scripting

Replace double double quotes using AWK/SED

Hi, I have data as "01/22/97-"aaaaaaaaaaaaaaaaa""aaa""aabbbbbbbbcccccc""zbcd""dddddddddeeeeeeeeefffffff" I want to remove only the Consequitive double quotes and not the one which occurs single. My O/P must be ... (2 Replies)
Discussion started by: Bhuvaneswari
2 Replies

9. Shell Programming and Scripting

Replacing comma with in double quotes in a csv file

Hello, I need to read a csv file and I am trying to replace a comma with a text DSEE?DSEE. Example Input "Chapter","NewTrains, "oldTrains","Delayed",10,"London" "Chapter","Newbuses,oldbuses","On Time",20,"London" Output "Chapter","NewTrainsDSEE?DSEE... (5 Replies)
Discussion started by: venkatvani
5 Replies

10. Shell Programming and Scripting

perform some operation on a specific coulmn starting from a specific line

I have a txt file having rows and coulmns, i want to perform some operation on a specific coulmn starting from a specific line. eg: 50.000000 1 1 1 1000.00000 1000.00000 50000.000 19 19 3.69797533E-07 871.66394 ... (3 Replies)
Discussion started by: shashi792
3 Replies
Login or Register to Ask a Question