while read a do b=($a) c=() for((d=0;d<${#b[@]};)) { e=${b[d]:1} [[ ${b[d++]} =~ L ]]&&c=(${c[*]} ${b[*]:d:e})&&((d+=e))||c=(${c[*]} ${c[*]:${#c[@]}-e}) } echo ${c[*]} done
Note that non-ascii characters in the above source code will be escaped (such as \x9f).