Help cannot concatenate Ksh variables ?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help cannot concatenate Ksh variables ?
# 1  
Old 02-20-2012
Data Help cannot concatenate Ksh variables ?

Cannot combine these two strings into one line, either as a 3rd variable or echo or printing ? Frustrating.

Code:
for i in `cat /scripts/pathList.dat`
do
    OldRepo= grep Oldhostname ${i}/.svn/entries | tail -1
    NewRepo= grep Oldhostname ${i}/.svn/entries | tail -1 | sed '/Oldhostname/ s/Oldhostname/Newhostname/g' | sed 's/\/oldpath1//g' | sed 's/\/oldpath2//g'
    echo "cd $i"
    echo "svn relocate $OldRepo $NewRepo" 
done

this always returns:
Code:
cd /path   ( this is ok )
svn relocate $OldRepo  
$NewRepo

Code:
I want "svn relocate $OldRepo $NewRepo "    all on the same line

I have tried RepLoc="$OldRepo $NewRepo"
echo $RepLoc with the same result each on a separate line.

and numerous others using echo -e with \c but nothing I do will concatenate $OldRepo $NewRepo

Please advise
Smilie

Last edited by methyl; 02-20-2012 at 01:00 PM.. Reason: please use code tags
# 2  
Old 02-20-2012
Possible that your data files contain MS-DOS control characters.

Can you post a sample of a representative file using this "sed" statement which is designed to make control characters visible.
Code:
sed -n l .svn/entries

Also, I assume that the missing backticks on lines 3 and 4 of the script in post #1 are because this post came via a Microsoft editor?

Last edited by methyl; 02-20-2012 at 01:23 PM..
# 3  
Old 02-20-2012
The script was written on a RedHat linux server using vi
The script was ran on the same Linux server using directories copied from a Windows server to a NAS mounted to the Linux server.

This post was created from an iMac (lion 10.7.x) using TexEditor application ( cut and paste from linux vi saved files.

in each path below there is a .svn/entries file the hostname is extracted from this file

snip from PathList:
Code:
/webdata/tmpDNAbld/PDSApp/PDSScrPd/Source
/webdata/tmpDNAbld/PDSApp/PDSScrPd/Source/Distrib
/webdata/tmpDNAbld/PDSApp/PDSScrPd/Source/Distrib/Release
/webdata/tmpDNAbld/PDSApp/PDSScrPd/Source/BC
/webdata/tmpDNAbld/PDSApp/PDSExclusive/Source/PDSExclusive
/webdata/tmpDNAbld/PDSApp/PDSExclusive/Source/PDSExclusive/Distrib
/webdata/tmpDNAbld/PDSApp/PDSExclusive/Source/PDSExclusive/Distrib/Release
/webdata/tmpDNAbld/PDSApp/PDSExclusive/Source/PDSExclusive/BC
/webdata/tmpDNAbld/PDSApp/PDSCompare/Source
/webdata/tmpDNAbld/PDSApp/PDSCompare/Source/distrib
/webdata/tmpDNAbld/PDSApp/PDSCompare/Source/distrib/release
/webdata/tmpDNAbld/PDSApp/PDSCompare/Source/BC
/webdata/tmpDNAbld/PDSApp/PDSOrganization/Source
/webdata/tmpDNAbld/PDSApp/PDSOrganization/Source/Distrib
/webdata/tmpDNAbld/PDSApp/PDSOrganization/Source/Distrib/Release
/webdata/tmpDNAbld/PDSApp/PDSOrganization/Source/BC
/webdata/tmpDNAbld/PDSApp/PDSMassXfer/Source
/webdata/tmpDNAbld/PDSApp/PDSMassXfer/Source/Distrib
/webdata/tmpDNAbld/PDSApp/PDSMassXfer/Source/Distrib/Release
/webdata/tmpDNAbld/PDSApp/PDSMassXfer/Source/BC
/webdata/tmpDNAbld/PDSApp/PDSBatch/Source


Last edited by Scott; 02-22-2012 at 02:22 PM.. Reason: Code tags
# 4  
Old 02-20-2012
Try updating this line.
Code:
OldRepo= grep Oldhostname ${i}/.svn/entries | tail -1

to
Code:
OldRepo= grep Oldhostname ${i}/.svn/entries | tail -1 | tr -d '\n'


Last edited by methyl; 02-20-2012 at 02:22 PM.. Reason: please use code tags
# 5  
Old 02-20-2012
this was an improvement. Both strings are now echo'ed together. Thanks

Now I just need "svn relocate" in the front of them and a space between OldRep and NewRep.
# 6  
Old 02-20-2012
We'd still like to see a sample of the ".svn/entries" file displayed with the "sed" I mentioned earlier. This would tell us what the line terminators are in this file and whether it is a recognisable text file format.

Further to bsrepellant, I suspect that we'll need to remove carriage-return characters (\r) not linefeed characters (\n).


With a bit of lateral thought we can use the same sed display to show what the script is actually outputting (rather than what it looks like on the screen):
Code:
./scriptname   |  sed -n l

# 7  
Old 02-20-2012
almost got it just changed to this (space not working yet):
Code:
echo -e "svn relocate\c" $OldRepo" " $NewRepo

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Concatenate two variables and form the third variable

Hi Guys, I was scratching my head for this for half a day... finally not successful :confused: Following is the problem I have a variable $ var1=123 $ var2-234 $ var3=345 and another Variable $ i=1 Now i wanted to save these into a Variable as shown below for i in 1 2 3 do... (5 Replies)
Discussion started by: ramprabhum
5 Replies

2. UNIX for Dummies Questions & Answers

Formating variables in KSH

Hi Friends , I want to know how to format the output for the following: i searched in the forum and couldnt get the exact requirement. Thanks in advance . (2 Replies)
Discussion started by: i150371485
2 Replies

3. Shell Programming and Scripting

concatenate variables

I need to know how to concatenate variables in Debian. I am making a interactive script where it ask the user for info to add a user I pull the first letter from the first middle and last name into individual variables now i want to put them all in one variable so i can put it into useradd command ... (4 Replies)
Discussion started by: HackerSeabass
4 Replies

4. Shell Programming and Scripting

ksh - for loop with variables

Hi, I 'm trying to send an e-mail for every different line in the .txt for i in {1..$variable} do sed -n "/$i$/p" text.txt done I have two problems about this. First one is that for loop doesn't work and the second one is that i cant get the output of sed (4 Replies)
Discussion started by: ozum
4 Replies

5. Shell Programming and Scripting

concatenate variables problem

Hello, I have a tricky problem: I have a $file with a variable number of occurrences of "ORA-" (in this case two) .......... EXP-00008: ORACLE error 3113 encountered ORA-03113: end-of-file on communication channel EXP-00056: ORACLE error 1403 encountered ORA-01403: no data found... (9 Replies)
Discussion started by: Laurentiu
9 Replies

6. Shell Programming and Scripting

Combining two variables in ksh

I can't believe I can't figure this out... given this code: CARS_DATA_LIST=`cat /tmp/file1 | awk '{print $1}' ` FMSA_DATA_LIST=`cat /tmp/file2 | awk '{print $1}' ` The value of each of the above variables is: CARS = a b c d e f g FMSA = a b c q r s I want to declare a third... (8 Replies)
Discussion started by: Shoeless_Mike
8 Replies

7. Shell Programming and Scripting

How to preserve NL in Ksh variables?

I'm trying to set a variable to the output of a command. This is what the comand output to the display looks like: />hciconndump -v TOsiu Dump of connection(s): TOsiu ---------------------------------------------------------------------- Process: A60Tsiu Connection: TOsiu... (2 Replies)
Discussion started by: troym72
2 Replies

8. Shell Programming and Scripting

how to concatenate values of two variables with an underscore(_) in between

Hi, I'm new to shell programming. I have two variables a and b a=val1 b=val2 could anyone kindly post the shell script to concatenate the values of variable a and b with an underscore(_) in between? The final output should be val1_val2. (8 Replies)
Discussion started by: badrimohanty
8 Replies

9. Shell Programming and Scripting

subtracting variables in ksh

hi all, how do i subract variables in shell ?? am trying to space out the headers and the output generated by the shell so they all line up : currently the output is like this : servers : users server1 : 10 latestServer : 50 so i thought... (3 Replies)
Discussion started by: cesarNZ
3 Replies

10. Shell Programming and Scripting

variables in ksh

I'm new to unix scripting. How would I go about pulling the first 3 characters from a variable in ksh and storing in another variable? Thanks. (9 Replies)
Discussion started by: steve6368
9 Replies
Login or Register to Ask a Question