Replace 2 Character With One Using tr


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replace 2 Character With One Using tr
# 1  
Old 07-01-2010
Replace 2 Character With One Using tr

Hi,

I have an XML file which is all on one line.

Code:
<?xml version="1.0" encoding="utf-8"?><FUNCTION><PRODUCTS><PRODUCT CODE="PROD1" ACTION="amend" VALIDATE="no"><SUPPLIER PRODUCT="SUPPPROD1" ACTION="amend" CODE="SUPPLIER"><STOCK_QUANTITY DATA="291"></STOCK_QUANTITY> <STOCK_DATE DATA="1277942400"></STOCK_DATE></SUPPLIER></PRODUCT></FUNCTION>

I am trying to replace the string >< with > \n < but can't seam to do this.

If I used
Code:
cat COMPGEAR.txt2010-07-01T083239.xml | tr "><" ">\n<"

It outputs the following
Code:
?xml version=1.0 encoding=utf-8?>
FUNCTION>
PRODUCTS>
PRODUCT CODE=PROD1 ACTION=amend VALIDATE=no>
SUPPLIER PRODUCT=SUPPPROD1 ACTION=amend CODE=SUPPLIER>
STOCK_QUANTITY DATA=291>
/STOCK_QUANTITY>
STOCK_DATE DATA=1277942400>
/STOCK_DATE>
/SUPPLIER>
/PRODUCT>
/FUNCTION>

But I need it to bring out the following
Code:
<?xml version="1.0" encoding="utf-8"?>
<FUNCTION>
<PRODUCTS>
<PRODUCT CODE="PROD1" ACTION="amend" VALIDATE="no">
<SUPPLIER PRODUCT="SUPPPROD1" ACTION="amend" CODE="SUPPLIER">
<STOCK_QUANTITY DATA="291">
</STOCK_QUANTITY>
<STOCK_DATE DATA="1277942400">
</STOCK_DATE>
</SUPPLIER>
</PRODUCT>
</FUNCTION>

Can anyone tell me how to do this?
# 2  
Old 07-01-2010
You need sed, not tr in this case:

Code:
sed 's/></>\n</g' infile

Most sed implementations do not support escape sequences in the RHS,
with those implementations you'll need something like this:

Code:
sed 's/></>\
</g' infile


Last edited by radoulov; 07-01-2010 at 06:46 AM..
# 3  
Old 07-01-2010
Quote:
Originally Posted by Ste_Moore01
Code:
cat COMPGEAR.txt2010-07-01T083239.xml | tr "><" ">\n<" | sed 's/^/</'

# 4  
Old 07-01-2010
Thanks for the quick replies.

radoulov - I tired your method and didn't bring back any results. I'm not sure what I did wrong.

I tried
Code:
sed 's/></>\n</g' COMPGEAR.txt2010-07-01T083239.xml

and I tried
Code:
COMPGEAR.txt2010-07-01T083239.xml | sed 's/></>\n</g'

neither of them brought back any resuts

pseudocoder - your solution seemed to work perfectly thank you.
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