Shell 将文件内容筛选到已排序的表

Shell 将文件内容筛选到已排序的表,shell,unix,awk,zsh,file-format,Shell,Unix,Awk,Zsh,File Format,我有一个包含以下代码行的文件。在这里,该文件显示了一个明细表,这些明细表是逐个排序的 12:00时,詹姆斯版本1的日程安排如下: 第一个任务:吃:什么也不吃 第二项任务:休息:一小时 第三个任务:观看:什么都没有 12:00时,詹姆斯版本2的日程安排如下: 第一项任务:吃:水果 第二项任务:休息:两小时 第三项任务:观看:漫画 12:00时,alex版本1的时间表为: 第一项任务:吃:水果 第二项任务:休息:半小时 第三项任务:观看恐怖电影 12:00时,alex版本2的时间表为: 第一项任务:

我有一个包含以下代码行的文件。在这里,该文件显示了一个明细表,这些明细表是逐个排序的

12:00时,詹姆斯版本1的日程安排如下:
第一个任务:吃:什么也不吃
第二项任务:休息:一小时
第三个任务:观看:什么都没有
12:00时,詹姆斯版本2的日程安排如下:
第一项任务:吃:水果
第二项任务:休息:两小时
第三项任务:观看:漫画
12:00时,alex版本1的时间表为:
第一项任务:吃:水果
第二项任务:休息:半小时
第三项任务:观看恐怖电影
12:00时,alex版本2的时间表为:
第一项任务:吃饭:吃饭
第二个任务:休息:什么都没有
第三个任务:观看:什么都没有
18:00时,詹姆斯版本1的日程安排如下:
第一项任务:吃:快餐
第二项任务:休息:两小时
第三项任务:观看:系列
18:00时,詹姆斯版本2的时间表为:
第一个任务:吃:什么也不吃
第二项任务:休息:1小时
第三项任务:观看:系列
18:00时,alex版本1的时间表为:
第一项任务:吃:蔬菜
第二项任务:休息:三小时
第三项任务:观看:漫画
18:00时,alex版本2的时间表为:
第一项任务:吃:面包
第二项任务:休息:五小时
第三项任务:观看:漫画
22:00时,詹姆斯版本1的日程安排如下:
第一个任务:吃:什么也不吃
第二个任务:休息:七小时
第三个任务:观看:什么都没有
22:00时,詹姆斯版本2的日程安排如下:
第一项任务:吃饭:吃饭
第二个任务:休息:六小时
第三个任务:观看:什么都没有
22:00时,alex版本1的时间表为:
第一项任务:吃:蔬菜
第二个任务:休息:七小时
第三项任务:观看:漫画
22:00时,alex版本2的日程安排如下:
第一项任务:吃:冰淇淋
第二个任务:休息:七小时
第三个任务:观看:什么都没有
我试着这样分类:

12:00吃:水果
18:00吃:蔬菜
22:00吃:没什么
12:00休息时间:1:00
18:00休息时间:三小时
22:00休息时间:七小时
12:00观看:恐怖电影
18:00观看:漫画
22:00观看:没什么
使用以下命令:

awk-F'[\:]''/日程安排是/{h=$2;m=$3}/eating/{print“h”:“m”watching:“$3}”F.txt
awk-F'[\:]''/时间表是/{h=$2;m=$3}/rest/{print“h”:“m”rest:$3}F.txt
awk-F'[\:]''/时间表是/{h=$2;m=$3}/监视/{print“h”:“m”监视:“$3}”F.txt

现在,我希望通过忽略所有不重要的单词并对表中最有价值的信息进行排序来改进过滤后的文件,我试图思考/搜索如何获得这种格式,但徒劳无功。

不,没有,您或其他人需要编写一个。请编辑您的问题以显示您的尝试。这真的是你想要的输出格式吗?它不是真正的CSV,考虑到各种行格式和空行,用它做任何事情都非常困难。为什么输入中的某些块没有出现在输出中?如果删除它们背后有某种逻辑,那么编辑你的问题,告诉我们它是什么。如果输入中的每个块都应该在输出中,那么编辑您的问题以显示出来。@Ed Morton我已经编辑了post question您希望您的表是什么样子的?