2013-09-13 2 views
0

У меня есть out.txt, который я бы хотел прочитать в столбцах вместо строк. Я хотел бы превратить строки 1-5 в столбец, 6-10 в столбец и т. Д. Может ли кто-нибудь указать мне правильное направление?превратить строки в столбец для каждой n-й строки

diff -r ./playground2/GN_GLENDALE_BILLS_130911_113722.txt ./playground/GN_GLENDALE_BILLS_130911_113722.txt 
22c22 
< N4*MCDONALDS*KY*40512~^M 
--- 
> N4*LEXINGTON*KY*40512~^M 
diff -r ./playground2/GN_GLENDALE_BILLS_130911_113723.txt ./playground/GN_GLENDALE_BILLS_130911_113723.txt 
22c22 
< N4*MCDONALDS*KY*40512~^M 
--- 
> N4*LEXINGTON*KY*40512~^M 
diff -r ./playground2/GN_GLENDALE_BILLS_130911_113725.txt ./playground/GN_GLENDALE_BILLS_130911_113725.txt 
22c22 
< N4*MCDONALDS*KY*40512~^M 
--- 
> N4*LEXINGTON*KY*40512~^M 

ответ

0

Предполагая, что файл имеет несколько линий, равномерно делится на 5 (или, что любые остаточные линии должны быть проигнорированы), это должно работать нормально:

filein=out.txt 
fid=15      #file identifier 
nlines=`cat $filein | wc -l` #count number of lines in file 
eval "exec $fid<$filein" 
for cnt in $(seq 1 $((nlines/5))); do 
    read <&$fid line1 
    read <&$fid line2 
    read <&$fid line3 
    read <&$fid line4 
    read <&$fid line5 
    echo $line1 $line2 $line3 $line4 $line5 
done 
eval "exec $fid<&-" 

В принципе, это просто делает для цикла за 1/5 количество строк в файле, считая по 5 строк за раз и выплевывая их все сразу.

Смежные вопросы