如何使用awk将数据从文本文件写入excel文件行?

时间:2015-11-24 14:06:05

标签: excel bash awk

我的文本文件中有数据,我希望将这些数据写入excel行。

输入文件:

12784
657
38%
5.5
237
.
.

(Excel)输出文件:

Column_3  Column_4 Column_5 Column_6 Column_7 ...
12784      657      38%      5.5      237

因为前两行包含一些其他数据。

我试过了:

awk '{print $1}' OFS="|" input.txt > OutputObatained.xls

但数据只写在第1栏(第1栏)。 另外,我想要第3列的数据。 我正在编写一个脚本,所以这些数据会经常添加,我必须每次都添加到新行中。 例如: 第一输出 (Excel)输出文件:

Column_3  Column_4 Column_5 Column_6 Column_7 ...
12784      657      38%      5.5      237

第二次输出:

(Excel)输出文件:

Column_3  Column_4 Column_5 Column_6 Column_7 ...
12784      657      38%      5.5      237
13455      689      40%      6.1      240

像这样,我不想放弃以前的数据,每次数据都应该进入新的行。

到目前为止,我能够获得类似的数据 (Excel)输出文件:

Column_1  Column_2 Column_3 Column_4 Column_5 ...
12784      657      38%      5.5      237

但我需要从第3列获取数据。每次数据必须在新行中时,下一步。

1 个答案:

答案 0 :(得分:2)

根据您显示的数据

paste - - - - - < input.txt > output.csv

输出文件将包含制表符分隔的数据。

根据您实际拥有的列数,可以动态生成一系列连字符。或者,使用awk:

awk -v cols=5 '{printf "%s%s", $1, (NR % cols == 0 ? "\n" : "\t")}' input > output