Line Code
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