I am having a File format as mentioned below Below is the code to handle above scenario Code: while read line do emp_id=`echo $line | awk -F'|' '{print $1}'` name=`echo $line | awk -F'|' '{print $2}'` counter=`echo $line | awk -F'|' '{print $3}'` counter1=4 while [[ $counter -gt 0 ]] do language=`echo $line |cut -f$counter1 -d"|"` counter1=`expr $counter1 + 1` counter=`expr $counter - 1` echo $emp_id'|'$name'|'$language>>output.txt done done <input.txt