echo "<gen>" while read line do if [[ $line == *.\ * ]]; then segline=$(echo $line | sed s/"\. "/".~"/) sentence="$( cut -d '~' -f 1 <<< "$segline" )" rulelist="$( cut -d '~' -f 2- <<< "$segline" )" else sentence=$line; rulelist=""; fi printf "<pair><sent>$sentence</sent><rules>" for r in $rulelist do printf "<rule>$r</rule>" done echo "</rules></pair>" done; echo "</gen>"