【发布时间】:2016-11-23 02:13:37
【问题描述】:
编者注:我已经澄清了问题的定义,因为我认为这个问题很有趣,这个问题值得重新讨论。
我有一个包含以下格式的键值行的文本文件 - 请注意,下面的 # 行仅用于显示重复块,而不是输入的一部分:
Country:United Kingdom
Language:English
Capital city:London
#
Country:France
Language:French
Capital city:Paris
#
Country:Germany
Language:German
Capital city:Berlin
#
Country:Italy
Language:Italian
Capital city:Rome
#
Country:Russia
Language:Russian
Capital city:Moscow
使用 shell 命令和实用程序,如何将这样的文件转换为 CSV 格式,使其看起来像这样?
Country,Language,Capital city
United Kingdom,English,London
France,French,Paris
Germany,German,Berlin
Italy,Italian,Rome
Russia,Russian,Moscow
换句话说:
- 将键名设为 CSV 标题行的列名。
- 将每个块中的值分别设为一个数据行。
[OP's original] 编辑:我的想法是将条目分开,例如Country:France 将变为 Country France,然后 grep/sed 标题。但是我不知道如何将标题从单列移动到几个单独的列。
【问题讨论】:
-
建议:给我们看一些代码。
-
糟糕,您忘记发布代码了! StackOverflow 旨在帮助人们修复他们的代码。这不是免费的编码服务。任何代码都比没有代码好。元代码甚至可以展示您认为程序应该如何工作,即使您不知道如何编写它。
-
编辑:我的想法是将条目分开,例如Country:France 将变为 Country France,然后 grep/sed 标题。但是我不知道如何将标题从单个列移动到几个单独的列,而不会弄乱列表中条目的顺序。
-
你想使用 awk。