The cost of using the '''cut(1)''' program for several consecutive operations is high. In UsingXargsForRepetition, each iteration parameter was separated from the next by a newline. Unfortunately, the '''read''' Shell utility cuts on whole line boundaries. We can input lines with '''read''' and then split them using '''cut''', separating fields by their delimiters: while read line do f=`cut -f1 -d';'` d=`cut -f2 -d';'` c=`cut -f4 -d';'` ... done However, this spawns a Shell process for each parameter on each line, and most of the real time will be expended in process creation. It violates intuition to create a process to pick off each parameter. Yet we must create a new process to use '''cut'''. '''Therefore:''' use the Input''''''Field''''''Separator ('''IFS''') variable and '''read/line/set'''. Use this instead of the above code: '''IFS'''=';' while read f d junk1 c junk2 do ... done The use of '''junk2''' is important to make sure that fields following 'c' are not put into the value of 'c'. ---- CategoryUnixShellPattern