Visit Our UNIX and Linux User Community


comma delimiter and space


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting comma delimiter and space
# 1  
Old 11-06-2009
comma delimiter and space

I have a csv file and there is a problem which I need to resolve.
Column1,Column2,Colum3,Column4
,x,y,z
,d,c,v
t,l,m,n
,h,s,k
,k,,y
z,j, ,p

Now if you see column1 for row 1 and row 4 though they are null there is a space but in case of row2 and row 5 there is no space.
I want row 1 and row 4 to look like row 2 and row 5.
Also if you see row 6 column 3 it is null but it has space, however row 5 and column 3 though null doesnot have space.
Basically I want a solution whereby if a column is null then between two comma delimters there should not be any space
and this should be applicable at the first column also.Any clue guys.

Last edited by RubinPat; 11-06-2009 at 04:20 PM..
# 2  
Old 11-06-2009
Code:
sed 's/ //g' file > file

this will remove all spaces anywhere in the file.

Code:
$ cat test
Column1,Column2,Colum3,Column4
,x,y,z
,d,c,v
t,l,m,n
,h,s,k
,k,,y
z,j, ,p
$ sed 's/ //g' test
Column1,Column2,Colum3,Column4
,x,y,z
,d,c,v
t,l,m,n
,h,s,k
,k,,y
z,j,,p


Last edited by mkastin; 11-06-2009 at 03:45 PM.. Reason: Added example input and output
# 3  
Old 11-06-2009
Kastin
If I use 's/ //g' then all spaces will be removed
like if I have a value in a field which is like below
,xi hy,y,z
,dg hy,c,v
t,l,m,n
,h,s,k
,k,,y
z,j, ,p

I will get this

space,xihy,y,z
,dghy,c,v
t,l,m,n
space,h,s,k
,k,,y
z,j, ,p
If you see xi hy and dg hy...they become together xihy and dghy
I dont want that
not all spaces will be removed but if there is a null column
, , then it should be ,, and this should be applicable to first field also.
Sorry for any confusion. Also here when in row 1 and 4 when i try to create space in the column1 field it doesnot take in this forum ..so I wrote space there

Last edited by RubinPat; 11-06-2009 at 04:22 PM..
# 4  
Old 11-06-2009
S you need to do something like

Code:
sed 's/,  */,/g;s/  *,/,/g'

instead.

---------- Post updated at 02:43 PM ---------- Previous update was at 02:41 PM ----------

By the way, that's two spaces before each *. Not necessary for this case and there are other ways to specify "one or more" spaces, but this is old habit and I just do it on autopilot.

Previous Thread | Next Thread
Test Your Knowledge in Computers #984
Difficulty: Medium
FreeBSD was the most popular open-source BSD operating system, accounting for more than three-quarters of all installed BSD systems.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Insert a new column with sequence number (Delimiter as comma)

Hi All, I have a file which has data like a,b c,d e,f g,h And I need to insert a new column at the begining with sequence no( 1 to n) 1,a,b 2,c,d 3,e,f 4,g,h Please let me know how to acheive this in unix (3 Replies)
Discussion started by: weknowd
3 Replies

2. Shell Programming and Scripting

Need to use delimiter as : and space in awk

Hi , Please suggest me how do I use : (colon and one space) as a delimiter in awk Best regards, Vishal (2 Replies)
Discussion started by: Vishal_dba
2 Replies

3. Shell Programming and Scripting

Replace comma delimiter by newline

The input file is as below AR,age,marks,roll,section,evin,25,80,456,A,atch,23,56,789,B,eena,24 ,78H245,C,Ps,ot,ecessary,hat,ame comes first then age and rest AR AZ,kevin,25,80,456,A,Satch,23,56,789,Satch,23,56,789,B,Meena,24,78,H245,C,AZ ................ ................ I am writting... (8 Replies)
Discussion started by: millan
8 Replies

4. Shell Programming and Scripting

Change the delimiter from Comma to Pipeline

Hello All, I need to convert a csv file to pipeline delimiter file in UNIX. The data in file itself contains comma with double qouted qualifier apart from the comma separator. Let me know how to do it. Appreciate any help if awk can be used to do it. Mentioned below is the sample record of... (14 Replies)
Discussion started by: Arun Mishra
14 Replies

5. Shell Programming and Scripting

Substituting comma "," for dot "." in a specific column when comma"," is a delimiter

Hi, I'm dealing with an issue and losing a lot of hours figuring out how i would solve this. I have an input file which looks like this: ('BLABLA +200-GRS','Serviço ','TarifaçãoServiço','wap.bla.us.0000000121',2985,0,55,' de conversão em escada','Dia','Domingos') ('BLABLA +200-GRR','Serviço... (6 Replies)
Discussion started by: poliver
6 Replies

6. Shell Programming and Scripting

nawk won't accept comma as delimiter

I have a text file delimited by commas, with three fields (no " marks). I want to use awk to create a fourth field which is equal to the line number + field 1 + .txt I've searched this forum and found the following nawk -v OFS=';' '{print $0, FNR}' myFile Which I've amended to change the... (2 Replies)
Discussion started by: b.hamilton
2 Replies

7. UNIX for Dummies Questions & Answers

Making a Tab delimiter file to Comma

How can i make a tab delimiter file to a comma delimiter??? (13 Replies)
Discussion started by: saggiboy10
13 Replies

8. Shell Programming and Scripting

Replacing Comma delimiter coming inside the data.

Hello, I am having flat file (Comma Delimiter) and the data in the file is as given below. EMPNO, ENAME, DESIGNATION, SALARY 10979, Arun Kumar, Cosultant, 35000 13555, Bidhu Shekar, Senior Consultant, 45000 15000, Kiran, Kumar, Senior, Consultant, 40000 If... (9 Replies)
Discussion started by: arunvasu2
9 Replies

9. Shell Programming and Scripting

Exporting data into Comma Delimiter.

Hi, Requirement: Exporting data from Oracle to UNIX into "Comma" delimiter. Help Needed: I was able to connect to Oracle and import the data. But please let me know while importing the data I need to make it into Comma delimiter flat file. For Example: Source Data - 100 ABC TLead... (6 Replies)
Discussion started by: arunvasu2
6 Replies

10. Shell Programming and Scripting

Space as a delimiter

not sure if i'm doing this right i'm new tho this but i'm trying to use a space as a delimiter with the cut command my code is size=$( du -k -S -s /home/cmik | cut -d' ' -f1 ) i've also tried -f2 and switching the -d and -f around if that does anything (3 Replies)
Discussion started by: Cmik
3 Replies

Featured Tech Videos