Hi everybody!
I'm working in one script with sed, I have file with the next content:
<voms.db.type
value="changeme"/>
<voms.db.host
value="changeme"/>
<voms.admin.smtp.host
value="changeme"/>
<voms.mysql.admin.password
value="changeme"/>
<glite.installer.verbose
value="true"/>
I want the output file is as follows
<voms.db.type value="changeme"/>
<voms.db.host value="changeme"/>
<voms.admin.smtp.host value="changeme"/>
<voms.mysql.admin.password value="changeme"/>
<glite.installer.verbose value="true"/>
Thanks for your help
joeyg
October 9, 2008, 10:50am
2
> cat file3
<voms.db.type
value="changeme"/>
<voms.db.host
value="changeme"/>
<voms.admin.smtp.host
value="changeme"/>
<voms.mysql.admin.password
value="changeme"/>
<glite.installer.verbose
value="true"/>
> sed "s/>/>~/g" file3 | tr -d "[ ][\n]" | tr "~" "\n"
<voms.db.typevalue="changeme"/>
<voms.db.hostvalue="changeme"/>
<voms.admin.smtp.hostvalue="changeme"/>
<voms.mysql.admin.passwordvalue="changeme"/>
<glite.installer.verbosevalue="true"/>
>
Explained...
substitute > with >~ so can easily find end-of-lines
delete space and new-line characters
(note, the sample I copied/pasted had extra spaces after data in some lines)
then substitute new-lines for the ~ I used as marker in first step
Expect someone to offer an easier solution, but this is one approach
Another one, if the last character of the line isn't a ">", add the next line into the contents of the pattern space and delete the newline character:
sed -n '/[^>]/$/N;s/\n//p' file
With awk, if the last character of the line isn't a ">" print the line without a newline:
awk '!/>$/{printf("%s",$0);next}1' file
Regards
joeyg:
> cat file3
<voms.db.type
value="changeme"/>
<voms.db.host
value="changeme"/>
<voms.admin.smtp.host
value="changeme"/>
<voms.mysql.admin.password
value="changeme"/>
<glite.installer.verbose
value="true"/>
> sed "s/>/>~/g" file3 | tr -d "[ ][\n]" | tr "~" "\n"
<voms.db.typevalue="changeme"/>
<voms.db.hostvalue="changeme"/>
<voms.admin.smtp.hostvalue="changeme"/>
<voms.mysql.admin.passwordvalue="changeme"/>
<glite.installer.verbosevalue="true"/>
>
Explained...
substitute > with >~ so can easily find end-of-lines
delete space and new-line characters
(note, the sample I copied/pasted had extra spaces after data in some lines)
then substitute new-lines for the ~ I used as marker in first step
Expect someone to offer an easier solution, but this is one approach
Thank you for your help:) joeyg
the spaces are necesary, because after, I need capturing lines for show with Dialog, and the delimiter is value="changeme"... I change should be replaced by the user...
<voms.db.type value="changeme"/>
<voms.db.host value="changeme"/>
Thank You for your help