]>
Commit | Line | Data |
---|---|---|
4aedfabc | 1 | #!/bin/bash |
2 | ||
3 | Usage() { | |
4 | echo Usage: mrgfl.sh [-f] outFile inpFile1 inpFile2 .... | |
5 | echo Option -f will force overwriting existing output file | |
6 | exit 1 | |
7 | } | |
8 | # | |
9 | if [ $# -lt 2 ] ; then Usage ;fi | |
10 | # | |
11 | force=0 | |
12 | if [ "$1" == "-f" ] ; then | |
13 | force=1 | |
14 | shift 1 ; | |
15 | if [ $# -lt 2 ] ; then Usage ;fi | |
16 | fi | |
17 | # | |
18 | mrglst="_mrglst.txt" | |
19 | if [ -e $mrglst ] ; then rm $mrglst ;fi | |
20 | # | |
21 | outf=$1 | |
22 | shift 1 ; | |
23 | ||
24 | while [ $# -gt 0 ] ; do | |
25 | echo $1 | |
26 | shift 1 ; | |
27 | done > $mrglst | |
28 | ||
29 | macroName="TmpMergeMacro" | |
30 | if [ -e ${macroName}.C ] ; then rm ${macroName}.C ;fi | |
31 | # | |
32 | #cat > ${macroName}.C << "EOF" | |
33 | echo \ | |
34 | void ${macroName}'(const char* outFile,const char* mrgLst,Bool_t force) { | |
35 | gSystem->Load("libANALYSIS"); | |
36 | gSystem->Load("libANALYSISalice"); | |
37 | ifstream in; | |
38 | in.open(mrgLst); | |
39 | TFileMerger m(1); | |
40 | TString line; | |
41 | while (in.good()) { | |
42 | in >> line; | |
43 | if (line.Length() == 0) continue; | |
44 | TString fileName; | |
45 | fileName.Form("%s", line.Data()); | |
46 | Printf("%s", fileName.Data()); | |
47 | m.AddFile(fileName); | |
48 | } | |
49 | m.SetFastMethod(); | |
50 | m.OutputFile(outFile,force); | |
51 | m.Merge(); | |
52 | }' > ${macroName}.C | |
53 | ||
54 | aliroot -b -q ${macroName}.C\(\"${outf}\",\"${mrglst}\",${force}\) | |
55 | ||
56 | rm ${mrglst} | |
57 | rm ${macroName}.C |