我在.txt文件中有一个分组列表,我试图将其转换为.csv文件,我可以使用bash以下列格式导出到Excel。有谁知道怎么做?
原件:
姓名:aaaa
所有者:aaa
Oncall:aa
-
姓名:bbbb
所有者:bbb
Oncall:bb
-
姓名:cccc
所有者:ccc
Oncall:cc
所需格式:
姓名,所有者,Oncall
aaaa,aaa,aabbbb,bbb,bb,
cccc,ccc,cc
谢谢!
答案 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
。
第一个块语句只打印一次标题。
第二个块语句循环遍历找到的值,并以逗号作为分隔符打印它们。