1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#!/bin/bash
infile=$1
iovfile=$2
nbreaks=-1
if [[ $3 != "" ]];then
let nbreaks=$3
fi
iovlist=()
while IFS='' read -r line || [[ -n "$line" ]]; do
iovlist+=($line)
done < $iovfile
let niovs=${#iovlist[@]}
let lastiov=$niovs-1
for (( i=0; i<${niovs}; i++ ));
do
let ni=$i+1
core=${infile%%.dat*}
newfile=$core".dat_"${iovlist[i]}
rm -f $newfile
str=""
let nadded=1
for f in $(cat $infile)
do
if [[ $f != "#"* ]];then
nobegin=${f#*/000/}
noend=${nobegin%%/00000*}
let run=${noend/\//}
addfile=${f%*,}
if [ $i -eq $lastiov ];then
if [ $run -ge ${iovlist[i]} ]; then
appendstr=""
if [ $nadded -eq $nbreaks ];then
appendstr="\n"
let nadded=0
else
appendstr=","
fi
addfile=$addfile$appendstr
str=$str$addfile
let nadded=nadded+1
fi
elif [ $run -ge ${iovlist[i]} ] && [ $run -lt ${iovlist[$ni]} ]; then
appendstr=""
if [ $nadded -eq $nbreaks ];then
appendstr="\n"
let nadded=0
else
appendstr=","
fi
addfile=$addfile$appendstr
str=$str$addfile
let nadded=nadded+1
fi
fi
done
str2=${str%,}
if [[ $str2 != "" ]];then
echo -e $str2 >> $newfile
else
$newfile" is empty. Please skip!"
fi
done
|