我在.txt文件中有一个分组列表,我正在尝试将其转换为.csv文件,可以使用 bash 以以下格式将其导出到 Excel。有谁知道如何做到这一点?
源语言:
名称: aaaa
所有者:aaa
随叫随到:aa
--
名称: BBBB
业主: BBB
随叫随到:BB
--
名称:中交
业主:CCC
随叫随到:抄送
所需格式:
姓名、所有者、待命
啊
bbbb, bbb, bb,
中交、中交、中交、中交
谢谢!
尝试"转置行和列:3 种方法">
http://www.thelinuxrain.com/articles/transposing-rows-and-columns-3-methods
使用 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
记录分位器设置为--
,以便一次捕捉 3key: value
。
第一个块语句仅打印一次标头。
第二个块语句循环访问找到的值,并使用逗号作为分隔符打印它们。