Cannot combine these two strings into one line, either as a 3rd variable or echo or printing ? Frustrating.
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:
cd /path ( this is ok )
svn relocate $OldRepo
$NewRepo
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
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
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):
find /webdata/tmpDNAbld -type d -exec sh -c '[ -d "$1"/.svn ] || exit 1' sh {} \; -print | cat > pathList.dat
what the "entries file" looks like (where hostname is located) we are only interested in the second URL line
8
dir
5254
https://Oldhostname/oldpath1/svn/oldpath2/NBH-HMS-HealthPromotion/tags/hp_rewrite/WebApp/Views/Account
https://Oldhostname/oldpath1/svn/oldpath2/NBH-HMS-HealthPromotion
... snip
---------- Post updated at 01:43 PM ---------- Previous update was at 01:41 PM ----------
@pcpinkerton
That doesn't look like the output of a sample:
sed -n l ./svn/entries
The format of these files is probably the problem. We need to see the control codes before a screen driver interprets them.
The "sed" is just designed to make control codes visible. When displayed by this method a normal unix line terminator shows as a dollar sign. Because these files came from a MAC they may contain carriage-return characters.
Script line 1 contains two left quote characters. These are known in unix shell scripting as "backticks". In your ksh the code between the backticks is executed and the results placed on the command line.
Script lines 3 and 4 contain space characters where I would expect to see backticks.
@bsrepellant
No problem at all with all of us working on this. If we ever manage to see a clean sample of the input data format we can run a test.
If the sample output posted is real (i.e. unexpanded variables), then there is something mega wrong with this shell.
Hmm the original script was a non-runner. Without the backticks the commands never executed. Please post the current version of the script (preferably intact), the sample input requested several times, the actual output of the script, and what you expect the actual output to look like.
The two sed statements at the end of the NewRepo= line look unlikely because they just delete strings which are not present in your data sample.
The delimiter for "sed" does not have to be a solidus. When editing data containing a solidus it is better to choose a different delimiter.
ksh script output not as expected a continuation of "Help cannot concatenate variables" .
The issue seems to be the Input source file contains PATH with spaces in some of the directory names. Added snip from input file, console output and output file.
Output format expected
cd /PATH.....
svn relocate Oldrepo NewRepo
repeated for each path from Input file
#!/bin/ksh
#
# Read the list of Subversion working copies to Relocate to new Subversion Server
OutputLoc="/scripts/dataout"
bldDirLoc="/webdata/tmpDNAbld/"
wcfiles=${OutputLoc}/dnaRelwc1.dat
svnRelcmd="svn relocate"
set svnRelcmd
cd ${bldDirLoc}
for i in `cat ${wcfiles}`
do
OldRepo=`grep svn01g.gdc ${i}/.svn/entries | tail -1 | tr -d '\n'`
NewRepo=`grep svn01g.gdc ${i}/.svn/entries | tail -1 | sed '/svn01g.gdc/ s/svn01g.gdc/svnprod/g' | sed 's/\/svn01p//g' | sed 's/\/Repositories//g'`
echo "cd" $i
echo -e "${svnRelcmd} ${OldRepo} ${NewRepo}\c"
done
$ ./createRelocwcMstr.sh > dataout/relocMstr.dat
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: Attachment/.svn/entries: No such file or directory
grep: Attachment/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: Attachment/DotNET/.svn/entries: No such file or directory
grep: Attachment/DotNET/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: Attachment/DotNET/bin/.svn/entries: No such file or directory
grep: Attachment/DotNET/bin/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: Attachment/DotNET/My/.svn/entries: No such file or directory
grep: Attachment/DotNET/My/.svn/entries: No such file or directory
grep: Project/.svn/entries: No such file or directory
grep: Project/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: Attachment/DotNET/obj/.svn/entries: No such file or directory
grep: Attachment/DotNET/obj/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: Attachment/DotNET/obj/Debug/.svn/entries: No such file or directory
grep: Attachment/DotNET/obj/Debug/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: Attachment/DotNET/obj/Debug/TempPE/.svn/entries: No such file or directory
grep: Attachment/DotNET/obj/Debug/TempPE/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: Attachment/DotNET/obj/Release/.svn/entries: No such file or directory
grep: Attachment/DotNET/obj/Release/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: Attachment/DotNET/obj/Release/TempPE/.svn/entries: No such file or directory
grep: Attachment/DotNET/obj/Release/TempPE/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: Attachment/Release/.svn/entries: No such file or directory
grep: Attachment/Release/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: Attachment/VB6/.svn/entries: No such file or directory
grep: Attachment/VB6/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: ALPS_ATTACHMENT/Utility/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: EXE/.svn/entries: No such file or directory
grep: Attachment/VB6/Release/.svn/entries: No such file or directory
grep: Attachment/VB6/Release/.svn/entries: No such file or directory
grep: ALPS_CACHE/Athena/.svn/entries: No such file or directory
grep: ALPS_CACHE/Athena/.svn/entries: No such file or directory
grep: COM/.svn/entries: No such file or directory
grep: COM/.svn/entries: No such file or directory
grep: Trackers/.svn/entries: No such file or directory
grep: Trackers/.svn/entries: No such file or directory
grep: ALPS_CACHE/COM/.svn/entries: No such file or directory
grep: ALPS_CACHE/COM/.svn/entries: No such file or directory
grep: Cache/.svn/entries: No such file or directory
grep: Cache/.svn/entries: No such file or directory
grep: ALPS_CACHE/COM/.svn/entries: No such file or directory
grep: ALPS_CACHE/COM/.svn/entries: No such file or directory
grep: Cache/Release/.svn/entries: No such file or directory
grep: Cache/Release/.svn/entries: No such file or directory
grep: ALPS_COM/Athena/.svn/entries: No such file or directory
grep: ALPS_COM/Athena/.svn/entries: No such file or directory
grep: COM/.svn/entries: No such file or directory
grep: COM/.svn/entries: No such file or directory
grep: Trackers/.svn/entries: No such file or directory
grep: Trackers/.svn/entries: No such file or directory
grep: ALPS_COM/COM/.svn/entries: No such file or directory
grep: ALPS_COM/COM/.svn/entries: No such file or directory
grep: Attachment/.svn/entries: No such file or directory
grep: Attachment/.svn/entries: No such file or directory
grep: ALPS_COM/COM/.svn/entries: No such file or directory
grep: ALPS_COM/COM/.svn/entries: No such file or directory
grep: Business/.svn/entries: No such file or directory
grep: Business/.svn/entries: No such file or directory
grep: Layer/.svn/entries: No such file or directory
grep: Layer/.svn/entries: No such file or directory
grep: ALPS_COM/COM/.svn/entries: No such file or directory
grep: ALPS_COM/COM/.svn/entries: No such file or directory
grep: Data/.svn/entries: No such file or directory
Output File #1 snip ...
cd AgentWebPages/AgentWebPages/Source/Distrib
svn relocate https://svn01g.gdc.nwie.net/svn01p/svn/Repositories/ePDS2 https://svnprod.nwie.net/svn/ePDS2
cd AgentWebPages/AgentWebPages/Source/Distrib/Release
svn relocate https://svn01g.gdc.nwie.net/svn01p/svn/Repositories/ePDS2 https://svnprod.nwie.net/svn/SWAT
cd AgncyInfoInProc/SalesApplication/Source
svn relocate https://svn01g.gdc.nwie.net/svn01p/svn/Repositories/SWAT https://svnprod.nwie.net/svn/SWAT
cd AgncyInfoInProc/SalesApplication/Source/bc
svn relocate https://svn01g.gdc.nwie.net/svn01p/svn/Repositories/SWAT https://svnprod.nwie.net/svn/SWAT
cd AgncyInfoInProc/SalesApplication/Source/Distrib
svn relocate https://svn01g.gdc.nwie.net/svn01p/svn/Repositories/SWAT https://svnprod.nwie.net/svn/SWAT
cd AgncyInfoInProc/SalesApplication/Source/Distrib/Release
svn relocate https://svn01g.gdc.nwie.net/svn01p/svn/Repositories/SWAT cd ALPS_ATTACHMENT/Utility
svn relocate cd EXE
svn relocate cd Attachment
svn relocate cd ALPS_ATTACHMENT/Utility
svn relocate cd EXE
svn relocate cd Attachment/DotNET
svn relocate cd ALPS_ATTACHMENT/Utility
svn relocate cd EXE
svn relocate cd Attachment/DotNET/bin
svn relocate cd ALPS_ATTACHMENT/Utility
svn relocate cd EXE
svn relocate cd Attachment/DotNET/My
svn relocate cd Project
svn relocate cd ALPS_ATTACHMENT/Utility
svn relocate cd EXE