2017-07-27 68 views
1

我有,我有我的二維數組數據現在目前我打印這個矩陣如下bash腳本:如何將2d數組轉換爲bash/shell中的html文件?

f1="%$((${#num_rows}+1))s" 
    f2=" %12s" 

    printf "$f1" '' 

     printf "$f2" "Total" 
     printf "$f2" "Pass" 
     printf "$f2" "Stillfail" 
     printf "$f2" "Failure" 
     printf "$f2" "APIName" 
     printf "$f2" 
echo 
    for ((j=1;j<=num_rows;j++)) do 
     printf "$f1" $j 
     for ((i=1;i<=num_columns;i++)) do 
      if [ i == 5 ]; then 
      printf "%-20s" ${matrix[$j,$i]} 
      else 
      printf "$f2" ${matrix[$j,$i]} 
     done 
     echo 
    done 

我嘗試了很多,但仍然有對齊問題,所以現在我想建立一個html表格輸出這個數據。任何人都可以指導我這個?在此先感謝

+1

只需在當前正在打印數據的位置添加表格,tr和td標記? –

+0

我想,也可惜不會在bash腳本工作 –

+0

「<表格樣式=」 WIDTH:50%「> 總 Stillfail 通 ScriptError APIName (((j = 1; j <= num_rows; j ++)) 「 echo ( ) I = 1;我<= NUM​​_COLUMNS;我++))做 的printf 「​​」 $ {矩陣[$Ĵ,$ I]} 「」 的printf 「」 完成 回聲 完成 「」 –

回答

0

這是完整的腳本。我認爲這會解決問題

#!/bin/bash 
declare -a matrix 
num_rows=6 
num_columns=5 

for ((i=1;i<=num_columns;i++)) do 
    for ((j=1;j<=num_rows;j++)) do 
     matrix[$i,$j]=$RANDOM 
    done 
done 

f1="%$((${#num_columns}+3))s" 
f2=" %12s" 

header=("" "Total" "Pass" "Stillfail" "Failure" "APIName") 

printf "$f1|" 'No.' 
for ((i=1;i<=num_columns;i++)) do 
    if [ $i -eq 3 ]; then 
    printf "%-20s|" ${header[$i]} 
    else 
    printf "$f2|" ${header[$i]} 
    fi 
done 
echo 

for ((j=1;j<=num_rows;j++)) do 
    printf "$f1|" $j 
    for ((i=1;i<=num_columns;i++)) do 
     if [ $i -eq 3 ]; then 
     printf "%-20s|" ${matrix[$j,$i]} 
     else 
     printf "$f2|" ${matrix[$j,$i]} 
     fi 
    done 
    echo 
done 

echo 
echo "-----HTML----" 
echo "<table style="width:50%">" 

printf "$f1" '<tr><th>No.</th>' 
for ((i=1;i<=num_columns;i++)) do 
    if [ $i -eq 3 ]; then 
    printf "<th align=left>%s</th>" ${header[$i]} 
    else 
    printf "<th align=right>%s</th>" ${header[$i]} 
    fi 
done 
echo '</tr>' 

for ((j=1;j<=num_rows;j++)) do 
    printf "<tr><td align=right>$f1</td>" $j 
    for ((i=1;i<=num_columns;i++)) do 
     if [ $i -eq 3 ]; then 
     printf "<td align=left>%s</td>" ${matrix[$j,$i]} 
     else 
     printf "<td align=right>%s</td>" ${matrix[$i,$j]} 
     fi 
    done 
    echo '</tr>' 
done 
echo "</tr></table>" 
相關問題