Replace the character


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replace the character
# 1  
Old 01-26-2016
Replace the character

Hi All,

I have a file with below format, columns are separated by ,
Code:
1575957.86,2186027.51,3092745.98,4320856.55,2536012.28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,

I want to replace all
Code:
,,

with
Code:
 ,0,

However if I tried
awk '{gsub(/[,,]+/,",0,")}1'
then my o/p looks what I expect for end of columns where no value are present but it add extra ZERO to the other columns as well. which I don't want.
Code:
1575957.86,0,2186027.51,0,3092745.98,0,4320856.55,0,2536012.28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

If I use sed -e "s/,,/,0,/g" then it replace all alternate columns of
Code:
,,

to
Code:
 ,0,

Code:
1575957.86,2186027.51,3092745.98,4320856.55,2536012.28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,0,,0,,0,,0,,0,,0,,0,,

does anyone has any idea?
# 2  
Old 01-26-2016
Hello manas_ranjan,

Could you please try following and let me know if this helps(not tested though).
Code:
awk -F, '{for(i=1;i<=NF;i++){A=A?A OFS $i:$i};print A;A=""}' OFS=",0,"  Input_file

Thanks,
R. Singh
# 3  
Old 01-26-2016
Thanks Ravinder, but No it's not working.........it's also replacing every alternate position in last columns to ZERO like SED and adding ZERO to non blank columns like first, 2nd etc
Code:
1575957.86,0,2186027.51,0,3092745.98,0,4320856.55,0,2536012.28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,


Last edited by manas_ranjan; 01-26-2016 at 08:39 AM..
# 4  
Old 01-26-2016
How about
Code:
awk '{gsub(/,[^0-9.]/,",0")}1' file

or
Code:
sed  's/,[^0-9]/,0/g' file

---------- Post updated at 13:55 ---------- Previous update was at 13:40 ----------

No - not good. Try - for even field count -
Code:
awk '{gsub(/,,/,",0,0")} 1'  file

or
Code:
sed 's/,,/,0,0/g' file

# 5  
Old 01-26-2016
Hi Rudy,

Thanks. But my apologies, that I have an extra column which is character, so if I apply the formula then it amend 0 to the character,

original file



Code:
DummyCPKookmin,ENE,1575957.86,2186027.51,3092745.98,4320856.55,2536012.28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,

now after the change o/p looks like


Code:
0ummyCPKookmin,0NE,1575957.86,2186027.51,3092745.98,4320856.55,2536012.28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

I only wants ,, to be replaced by ,0,
I'm sorry again, for missing out those character columns

---------- Post updated at 07:58 AM ---------- Previous update was at 07:56 AM ----------

sorry i have not checked your 2nd comments.
Please ignore my response.

---------- Post updated at 07:58 AM ---------- Previous update was at 07:58 AM ----------

sorry i have not checked your 2nd comments.
Please ignore my response.
# 6  
Old 01-26-2016
Not good, either. Try
Code:
sed ':L; s/,,/,0,/; tL' file

This User Gave Thanks to RudiC For This Post:
# 7  
Old 01-26-2016
thanks Rudy 2nd option is working fine.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Replace certain character at specific place with related character

hello i have file with 100k records and each one has certain value that starts at 28th column and certain value that starts at 88th column e.g. 1st file <25>1234567 ..... <88> 8573785485 i have aditional file with values which are related to value that starts at 88th column of the... (1 Reply)
Discussion started by: dell1520
1 Replies

2. Shell Programming and Scripting

Find character and Replace character for given position

Hi, i want find the character '-' in a file from position 284-298, if it occurs i need to replace it with 'O ' for the position in the file. How to do that using SED command. thanks in advance, Sara (9 Replies)
Discussion started by: Sara183
9 Replies

3. UNIX for Dummies Questions & Answers

Replace a character with other

Hi All, I am having the below sample lin in the file. '''||V_D_BOOKING_TYPE||''' || ''¬'' || '''||V_D_SHARE_DELIV_FL||''' || ''¬'' || '''|| SUBSTR(V_D_FINANCIALDATATYPE,1,1) ||''' || ''¬'' || I need to replace ''¬'' with char(172). how do i do it. PLease help. sed 's/\''¬\''/chr(172)/g'... (3 Replies)
Discussion started by: abhi_123
3 Replies

4. Shell Programming and Scripting

Replace ^Z Character

Hello, I am trying to replace all ^Z chars in my file to a space using the following command: cat <file> | tr '\32' ' ' But the above command is deleting all NULL in the file. Hence the field positions are being changed. Please let me know the reason, if anyone knows. Thanks in... (15 Replies)
Discussion started by: risshanth
15 Replies

5. Shell Programming and Scripting

Replace multiple occurances of same character with a single character.

Hi all, Greetings, I have the following scenario, The contents of main file are like : Unix|||||forum|||||||||||||||is||||||the||best so||||||be|||||on||||||||||||||||||||||||||||||||||||||||||||it And i need the output in the following form: Unix=forum=is=the=best so=be=on=it ... (3 Replies)
Discussion started by: dipanchandra
3 Replies

6. Shell Programming and Scripting

replace character with '

ive tried doing sed -i 's/h/\'/g' file.txt to replace h with ' but it doesnt work:confused:. Any ideas would be greatly appreciated. (3 Replies)
Discussion started by: lyman1216
3 Replies

7. Shell Programming and Scripting

In Sed how can I replace starting from the 7th character to the 15th character.

Hi All, Was wondering how I can do the following.... I have a String as follows "ACCTRL000005022RRWDKKEEDKDD...." This string can be in a file called tail.out or in a Variable called $VAR2 Now I have another variable called $VAR1="000004785" (9 bytes long), I need the content of... (5 Replies)
Discussion started by: mohullah
5 Replies

8. Shell Programming and Scripting

replace a character with another character

hi i have a string var=abc.ghi.jkl.mno.pqr now i need to replace .(dot) with _(underscore) the result should be like "arresult=abc_def_ghi_jkl_mno_pqr" Please help (8 Replies)
Discussion started by: satish@123
8 Replies

9. Shell Programming and Scripting

read in a file character by character - replace any unknown ASCII characters with spa

Can someone help me to write a script / command to read in a file, character by character, replace any unknown ASCII characters with space. then write out the file to a new filename/ Thanks! (1 Reply)
Discussion started by: raghav525
1 Replies

10. UNIX for Dummies Questions & Answers

replace character with tr

Hi, i would like substitute the words containing the character "-" by any other. i've already tried the tr command: tr '\-' 'X', for example. But, this command doesn't work. It gave this: Original text: -i abcd-fe Result text: Xi abcdXfe Result desired: -i abcdXfe Thanks! ;) (3 Replies)
Discussion started by: tmxps
3 Replies
Login or Register to Ask a Question