从文本文件创建电子表格

从文本文件创建电子表格

我正在编写一个 shell 脚本,它将文本文件作为输入并生成电子表格作为输出。我有一个类似于下图所示的文本文件。

Name:John
Age:30
Gender:male
Name:Bob
Age:65
Gender:Male

并且这种模式会不断重复多次。我必须创建一个电子表格,其中包含姓名、年龄和性别字段,如下所示。

Name Age Gender
John 30  Male
Bob  65  Male

如有帮助,将不胜感激。

答案1

创建一个制表符分隔的文本文件,准备导入到 Excel 中:

printf "Name\tAge\tGender\n" > outfile
cut -d: -f2- <infile | paste - - - >> outfile
  • printf创建制表符分隔的标题
  • cut从第二个字段到行尾
  • paste将输出格式化为制表符分隔的三列并修改输出文件

您还可以对命令进行分组并仅重定向一次:

{
printf '%s\t%s\t%s\n' Name Age Gender
cut -d: -f2- <infile | paste - - -
} > outfile

答案2

如果文件的每条记录始终包含三行,则以下内容有效。

echo "Name Age Gender" >>OUTPUT.txt; xargs -n 3 < INPUTFILE.txt |sed 's/Name:\|Age:\|Gender://g' >> OUTPUT.txt

我确信有更雄辩的方法来处理这个问题。

相关内容