Вывод данных из скрипта в несколько столбцов, Tendro, 15-Дек-15, 13:41 [смотреть все]С скрипта идет вывод информации, подобной на: 1_1 OK 1_2 OK 1_3 OK 1_4 BAD 1_5 OK 2_1 OK 2_2 BAD 2_3 BAD 2_4 OK 2_5 OK 3_1 OK 3_2 OK 3_3 OK 3_4 OK 3_5 OKВывод идет посредством echo. Хотелось-бы красиво выводить как-то так: 1_1 OK 2_1 OK 3_1 OK 1_2 OK 2_2 BAD 3_2 OK 1_3 OK 2_3 BAD 3_3 OK 1_4 BAD 2_4 OK 3_4 OK 1_5 OK 2_5 OK 3_5 OK Но как это сделать придумать не могу. В голову приходит только вывод в одном echo нескольких значений, но вариант не проходит, так как вывод идет в цикле. Да и хочется какого-то более удобного масштабирования, в случае добавления еще одного столбца. Возможно ли такое сделать?
|
- Вывод данных из скрипта в несколько столбцов, pavlinux, 16:32 , 15-Дек-15 (1)
> Возможно ли такое сделать?Значения в массив, потом рисуй как нужно.
- Вывод данных из скрипта в несколько столбцов, XAnder, 16:44 , 15-Дек-15 (2)
> Хотелось-бы красиво выводить как-то так: > 1_1 OK 2_1 OK 3_1 OK > 1_2 OK 2_2 BAD 3_2 OK > 1_3 OK 2_3 BAD 3_3 OK > 1_4 BAD 2_4 OK 3_4 OK > 1_5 OK 2_5 OK 3_5 OK Может быть, column подойдёт?
- Вывод данных из скрипта в несколько столбцов, Andrey Mitrofanov, 16:45 , 15-Дек-15 (3)
> Возможно ли такое сделать?Если кто будет спрашивать, скажи я разрешил: seq 30 |column -c40 printf '%20s\n%-20s\n' {1..30} |column -c50
- Вывод данных из скрипта в несколько столбцов, pavlinux, 17:11 , 15-Дек-15 (5)
>> Возможно ли такое сделать? > Если кто будет спрашивать, скажи я разрешил: > seq 30 |column -c40 > printf '%20s\n%-20s\n' {1..30} |column -c50 Читер! Давай на баше!
- Вывод данных из скрипта в несколько столбцов, universite, 17:55 , 15-Дек-15 (6)
>>> Возможно ли такое сделать? >> Если кто будет спрашивать, скажи я разрешил: >> seq 30 |column -c40 >> printf '%20s\n%-20s\n' {1..30} |column -c50 > Читер! Давай на баше!Предложи свой вариант на awk :)
- Вывод данных из скрипта в несколько столбцов, pavlinux, 18:16 , 15-Дек-15 (7)
>>>> Возможно ли такое сделать? >>> column -c50 >> Читер! Давай на баше! > Предложи свой вариант на awk :) cat test.txt | awk '{A[i++]=$0;LINE=5;COL=3} END { for (j=0;j< (NR/COL-1);++j) print A[j]" "A[j+LINE]" "A[j+2*LINE];}'
1_1 OK 2_1 OK 3_1 OK 1_2 OK 2_2 BAD 3_2 OK 1_3 OK 2_3 BAD 3_3 OK 1_4 BAD 2_4 OK 3_4 OK 1_5 OK 2_5 OK 3_5 OK
... #!/bin/bashl=5;c=3;array=($(cat test.txt)); for ((i=0; i<${#array[@]}/$l;i++)); do for ((k=0; k<${#array[@]}/$c;k++)); do printf '%s %s | %s %s | %s %s\n' \ ${array[$k]} ${array[$((k+l))]} \ ${array[$((k+i*l))]} ${array[$((k+i*l+1))]} \ ${array[$((k+(i+1)*l))]} ${array[$((k+(i+1)*l+1))]}; done;done
Чот баш не пошёл, пальцы запутались в скобках %)
- Вывод данных из скрипта в несколько столбцов, pavlinux, 19:17 , 15-Дек-15 (8)
cat test.txt|awk '{A[i++]=$0;LINE=5;COL=3} END {for (j=0;j<(NR/COL-1);++j) print "| "A[j]" | "A[j+LINE]" | "A[j+2*LINE]" |";}'|column -t; | 1_1 OK | 2_1 OK | 3_1 OK | | 1_2 OK | 2_2 BAD | 3_2 OK | | 1_3 OK | 2_3 BAD | 3_3 OK | | 1_4 BAD | 2_4 OK | 3_4 OK | | 1_5 OK | 2_5 OK | 3_5 OK |
:)
- Вывод данных из скрипта в несколько столбцов, Tendro, 16:57 , 15-Дек-15 (4)
Хех, похоже мне нужен был именно column. Вот реально, не знал о нем, стыдно даже.Спасибо.
|