行を正しい形式に変換

行を正しい形式に変換

テキストファイルが3つあります。emp id.txt(以前のsal.txt、現在のsal.txt)。この3つのファイルの内容:-

従業員ID.txt

emp id ----- 1 4 7 10 13 16 19

sal.txt 前

before sal ----- 23 56 78 97 105 123 145

今買う

now sal ---- 25 60 82 99 109 124 150

シェルスクリプトで以下を使用しました。

awk '{ for (i=1; i<=NF; i++) RtoC[i]= (RtoC[i]? RtoC[i] FS $i: $i) } END{ for (i in RtoC) print RtoC[i] }' 行から列に変換すると、次の出力が表示されます。

1 23 25
4 56 60
7 78 82
10 97 99
13 105 109
16 123 124
19 145 150
emp before now
id  sal    sal
--- -----  ----

しかし、次の形式で出力したいと思います。

--------------------------------
|emp id  |before sal | now sal |
|--------|---------- | --------|
|1       | 23        |  25     |
|4       | 56        |  60     | 
|7       | 78        |  82     |
|10      | 97        |  99     |
|13      | 105       |  109    |
|16      | 123       |  124    |
|19      | 145       |  150    |
--------------------------------

上記の形式で出力を取得できるように、この問題を解決するのに役立ちますか?

ベストアンサー1

step1:

for i in "emp_id.txt" "beforesal.txt" "nowsal.txt"; do perl -pne "s/ /\n/g" $i >> "$i"fi; done


step2:

paste emp_id.txtfi beforesal.txtfi nowsal.txtfi

出力

emp before  now
id  sal sal
-----   -----   ----
1   23  25
4   56  60
7   78  82
10  97  99
13  105 109
16  123 124
19  145 150

おすすめ記事