Unixでテキストファイルの出力形式を変更する[閉じる]

Unixでテキストファイルの出力形式を変更する[閉じる]

Unixでテキストファイルの出力形式を変更するには?

これらのテキストファイルを処理するには、Unixコマンドが必要です。

現在の出力:(ABC.txt)

Day Count
10 210
11 112
12 275
13 120
Day Count2
10 105
12 118
15 119

期待される出力: (XYZ.txt)

Day Count Count2
10   210   105
11   112    0
12   275   118
13   120    0
15    0    119

また、次の出力を得るためにCountとCount2の割合を計算するために使用できるunixコマンドは何ですか?

期待される出力: (XYZ1.txt)

Day Count Count2 Percentage
10   210   105      50%
11   112    0        0%
12   275   118      43%
13   120    0        0%
15    0    119      100%

ありがとう、

ベストアンサー1

私は小さなawkスクリプトを作りました:

awk '
{
    if ( $1 == "Day" )
        c=$2;
    else
        v[$1][c]=$2;
    next;
} END {
    print "Day","Count","Count2","Percent";
    for (day in v)
    {
        c1=(!(v[day]["Count"]) ? 0 : v[day]["Count"]);
        c2=(!v[day]["Count2"] ? 0 : v[day]["Count2"]);
        p=(c1>0 ? c2/c1*100 : 100);
        printf("%s %s %s %.0f%%\n",day,c1,c2,p);
    }
}
' ABC.txt | column -t

出力をファイルに送信するには、> XYZ1.txt最後に追加します。

おすすめ記事