如何将分组.txt列表以列格式

时间:2018-06-14 20:52:32

标签: excel bash csv format export-to-excel

我在.txt文件中有一个分组列表,我试图将其转换为.csv文件,我可以使用bash以下列格式导出到Excel。有谁知道怎么做?

原件:

  

姓名:aaaa

     

所有者:aaa

     

Oncall:aa

     

-

     

姓名:bbbb

     

所有者:bbb

     

Oncall:bb

     

-

     

姓名:cccc

     

所有者:ccc

     

Oncall:cc

所需格式:

  

姓名,所有者,Oncall

     aaaa,aaa,aa

     

bbbb,bbb,bb,

     

cccc,ccc,cc

谢谢!

2 个答案:

答案 0 :(得分:0)

尝试'转置行和列:3种方法'

http://www.thelinuxrain.com/articles/transposing-rows-and-columns-3-methods

答案 1 :(得分:0)

使用awk:

awk -v RS='--' \
'!header++{
   for(i=1;i<=NF;i=i+2)
     printf "%s%s",substr($i,1,length($i)-1),(i==NF-1?"\n":",")
 }{
   for(i=2;i<=NF;i=i+2)
     printf "%s%s",$i,(i==NF?"\n":",")
 }' file

记录separtor设置为--,以便立即捕获3 key: value

第一个块语句只打印一次标题。

第二个块语句循环遍历找到的值,并以逗号作为分隔符打印它们。