while read firstcol secondcolandtherest ; do something done < the_file
т.е.: при помещении нескольких аргументов в "чтение" это помещает первый в первый аргумент, 2-й в 2-м аргументе, и т.д. В последнем аргументе это поместило "отдых строки".
некоторые примеры:
#if you want to read line by line: only 1 arg (therefore, it puts everyuthing in it, as the only arg is the last arg) while read whole_line ; do something with "$whole_line" done #if you only want only column 1 in $first, and everything else in $second_and_rest_of_line: while read first second_and_rest_of_line do something with "$first" and "$second_and_rest_of_line" done #if you only want col 1 and 2, and don't care about any extra cols: while read first second nonimportant do something with $first and "$second" #and we don't care about $nonimportant's content done
Обратите внимание на то, что: необходимо действительно добавить "-r" (для получения необработанного входа) опция считать, и изменить IFS согласно тому, в чем Вы нуждаетесь... Но вышеупомянутые примеры для обсуждения "аргументов", не надлежащего вызова чтения. См. http://mywiki.wooledge.org/BashPitfalls для получения информации об этом и многой другой тонкости