BASHを使用してCSVファイルの別の列に.txtファイルデータを保存する方法は?

BASHを使用してCSVファイルの別の列に.txtファイルデータを保存する方法は?

次のデータ構造を持つ.txtファイルがあります。

Scan Times:
 33.3 seconds
 77.4 seconds
 33.3 seconds
 77.4 seconds

Check Times:
 110.30 seconds
 72.99 seconds
 72.16 seconds
 110.30 seconds

Move Times:
 73.66 seconds
 90.77 seconds
 72.87 seconds
 71.75 seconds
 
Switch Times:
 92.0 seconds
 78.6 seconds
 77.8 seconds
 84.9 seconds

次に、対応する.txtファイルをインポートして、次の形式のCSVファイルを作成したいと思います。

ここに画像の説明を入力してください。

これまでのところ、私のbashスクリプトは非常に基本的なレイアウトを持っていますが、進行方法がわかりません。

inputFiles=("./Successes/SuccessSummary.txt" "./Failures/FailSummary.txt")
touch results.csv

for file in "${inputFiles[@]}"
do 
    while IFS= read -r line
    do
        #echo $line
        if [ "$line" = "Scan Times:" ]
        then 
        fi

        if [ "$line" = "Check Times:" ]
        then 
        fi

        if [ "$line" = "Move Times:" ]
        then 
        fi
        
        if [ "$line" = "Switch Distances:" ]
        then 
        fi
    done < "$file"
done

ベストアンサー1

pr -4T file
Scan Times:   Check Times:      Move Times:       Switch Times:
 33.3 seconds      110.30 seconds    73.66 seconds     92.0 seconds
 77.4 seconds      72.99 seconds     90.77 seconds     78.6 seconds
 33.3 seconds      72.16 seconds     72.87 seconds     77.8 seconds
 77.4 seconds      110.30 seconds    71.75 seconds     84.9 seconds

各列の空行も表示されます。
以前は、次のようにテキストを必要に応じて変更できましたsed

sed '/^\s*$/d;s/seconds//' file | pr -4T
Scan Times:   Check Times:  Move Times:   Switch Times:
 33.3          110.30        73.66         92.0
 77.4          72.99         90.77         78.6
 33.3          72.16         72.87         77.8
 77.4          110.30        71.75         84.9

付録:
このユーティリティは印刷用に作成されており、この状況に適していない基本的なフラグがたくさんあることを覚えておく必要があります。
-Tページ付けを削除し、ヘッダーとフッターを省略します。
-wNページの幅を設定します。 (基本: -w 72)。

追加2:
または各行を配列に書き込む方法の例awk

awk '
/^\s*$/ {i=0; next}
        {A[i]= A[++i] sprintf("%*s", 12,$($NF ~ /:$/?0:1))}
END     {for(i in A) print A[i]}
' file
 Scan Times:Check Times: Move Times:Switch Times:
        33.3      110.30       73.66        92.0
        77.4       72.99       90.77        78.6
        33.3       72.16       72.87        77.8
        77.4      110.30       71.75        84.9

おすすめ記事