unix - Concatenating input to svn list command with output, then pass it to grep -
i have next shell command partially working:
svn list $myrepo/libs/ | xargs -p 10 -l 1 -i {} echo $myrepo/libs/ {} trunk | sed 's/ //g' | xargs -p 20 -l 1 svn list --depth infinity | grep .xlsx
where $myrepo
corresponds svn server address.
the libs folder contains number of subfolders (currently 30 although 100), each contain number of tags, branches , trunk. wish list of xlsx files contained within trunk folder of each of these subfolders. command above works fine returns relative path $myrepo/libs/subfolder/trunk/, back:
1/2/3/file.xlsx
because of potentially big number of files have search through, performing in 2 parallel steps using xargs -p (i not have , cannot utilize parallels). trying in 1 command can used in php/perl/etc. , avoid multiple sytem calls.
what concatenate input part of command:
xargs -p 20 -l 1 svn list --depth infinity
with output it, give following:
$myrepo/libs/subfolder/trunk/1/2/3/file.xlsx
then pass grep find xlsx files.
i appreciate assistance provided.
if manage correctly divine intention, might work you.
svn list "$myrepo/libs/" | xargs -p 20 -n 1 sh -c 'svn list -r "$0/trunk/$1" | sed -n "s%.*\.xlsx$%$0/trunk/$1/&%p"' "$myrepo"
briefly, postprocess output inner svn list
filter .xslx
files , tack total svn path on @ same time. way, processing happens repo path still known.
we hack things bit passing in "$myrepo"
"$0"
subordinate sh
don't have export
variable. input outer svn list
comes $1
.
(the repos have access have different layout there copy/paste error somewhere.)
unix svn grep xargs
No comments:
Post a Comment