How to use sed to replace space partial


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to use sed to replace space partial
# 1  
Old 12-22-2010
How to use sed to replace space partial

source "PUT 810 712 0001 ILC AK4 00 0 00 00"
It needs to be changed to "PUT,810,712,0001,ILC,AK4 00 0 00 00"

Thanks in advance.
# 2  
Old 12-22-2010
quick reply:

If you have a strings of similar types, then you can use something like:

HTML Code:
str=`echo "PUT 810 712 0001 ILC AK4 00 0 00 00" | sed 's/[ ]/,/5'`

echo $str
It will replace first 5 occurrences of space from left to right order!.
# 3  
Old 12-22-2010
Thanks your reply.

sed 's/[ ]/,/5' is to replace the fifth space with comma.

the result is "PUT 810 712 0001 ILC,AK4 00 0 00 00" and not the expected one.
# 4  
Old 12-22-2010
Code:
 
str=$(echo "PUT 810 712 0001 ILC AK4 00 0 00 00" | sed 's/^\([^ ]*\) \([^ ]*\) \([^ ]*\) \([^ ]*\) \([^ ]*\) \([^ ]*\)\(.*\)/\1,\2\,\3\,4\,\5,\6\7/')

Here assumption is that 1st 6 WORDS are separated by a single space and you need to replace those 1st 5 spaces with a comma. If this is not you want, command has to be modified accordingly.

Last edited by anurag.singh; 12-22-2010 at 06:23 AM..
# 5  
Old 12-22-2010
I think this will work out for you, if the strings are of similar type( its just a workaround, as you must expect a much better solution from forum folks!):

str=`echo "PUT 810 712 0001 ILC AK4 00 0 00 00" | awk -F " " '{print $1","$2","$3","$4","$5","$6,$7,$8,$9,$10}'`

echo $str
# 6  
Old 12-22-2010
@IND123, will work if string has only 10 fields always.
# 7  
Old 12-22-2010
change the number of iterations according to the commas required..
Code:
str="PUT 810 712 0001 ILC AK4 00 0 00 00"
for i in 1 2 4 5 6
do
        str=$(echo "$str" | sed 's/ /,/')
done

echo $str

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace space with !@ using sed

Hello I have a requirement where I need to replace space :61 with !@ :61 Source :60F:123 :61:151 :61:151 :61:15101 Target :60F:123 :61:151!@:61:151!@:61:15101 I cant use and command as I don't want the tab to be converted . commands not working : sed 's/... (5 Replies)
Discussion started by: kamijia83
5 Replies

2. UNIX for Dummies Questions & Answers

Sed- Replace space in filename by a \

`echo $file | sed 's/ / /g'` Hey guys I want help in converting the spaces in my file names to '\ ' . Example: UK maps --> UK\ maps Could someone please help me. I have tried the following sequences already (none of them work): 1)s/ /\ /g 2)s/ /\\ /g 3)s/ /\\\ /g Can someone... (7 Replies)
Discussion started by: INNSAV1
7 Replies

3. Shell Programming and Scripting

sed the find the third , and replace with a space

Dear All, I am new here. Could anyone help to find a sed script for replace the third "," to " "? input: abc,def,ghi,jkl,mno,pqr,stu,vxz output: abc,def,ghi jkl,mno,pqr,stu,vxz Many thanks. Please use code tags next time for your code and data. (2 Replies)
Discussion started by: mimilaw
2 Replies

4. Shell Programming and Scripting

replace space with the help of sed

Hi, i have below string - mynameis arpit i want output like below - mynameis\ arpit that i am getting from below - temp='mynameis arpit' echo $temp|sed 's//\\ /g' --> mynameis\ arpit now i am doing - (2 Replies)
Discussion started by: thearpit
2 Replies

5. Shell Programming and Scripting

Replace comma with a blank space using SED

Hello everyone, I want to replace all "," (commas) with a blank space My command thus far is: cat test.text | sed -e s/\`//g | awk '{print$1" "$2" "$3}' I'm sure you guys know this, but the SED command that I am using is to get rid of the "`" (tics). which gives me: name ... (5 Replies)
Discussion started by: jayT
5 Replies

6. Shell Programming and Scripting

Using sed I want to replace space by newline

Input: -------------------------- 123asd 456sdasda 789a ------------------------- output wanted: --------------------- 123asd 456sdasda 789a ---------------------- I want this by sed in simple way please help (I know by: tr ' ' '\n' < inputfile )I want it by sed only (5 Replies)
Discussion started by: RahulJoshi
5 Replies

7. Shell Programming and Scripting

sed : replace space and end-of-line

Hi ! I'm rather new with sed ... learned a lot already by googling etc ... The following script should replace all spaces and ends-of-lines with "something (see below). #!/bin/bash i=0 while read line do fam="H`printf "%06d" $i`" echo $line | sed -e 's//\t'$fam'\n/g' i=$(($i+1))... (7 Replies)
Discussion started by: jossojjos
7 Replies

8. Shell Programming and Scripting

Replace 2 Occurances of Space (sed)

I have a large file that looks like the below output: system SUNWxwmod X Window System kernel modules system SUNWxwoft X Window System optional fonts system SUNWxwopt X Window System Optional Clients system ... (1 Reply)
Discussion started by: hxman
1 Replies

9. Shell Programming and Scripting

how to replace new line ( \n ) with space or Tab in Sed

Hi, how to replace new line with tab in sed ... i used sed -e 's/\n/\t/g' <filename > but its not working (1 Reply)
Discussion started by: mail2sant
1 Replies

10. Shell Programming and Scripting

gnu sed replace space with new line

please help in making sed singleline command i need to insert dos new line (CR LF) before " 34 matching device(s) found on \\cpu1." " 6 matching device(s) found on \\cpu7." " 102 matching device(s) found on \\mainserver." the problem is that sometimes there are both CR LF before strings and... (1 Reply)
Discussion started by: xserg
1 Replies
Login or Register to Ask a Question