使用 .crs 文件和命令行中的信息为输出文件制作模板

使用 .crs 文件和命令行中的信息为输出文件制作模板

我想.crs使用 筛选文件bash,并从文件中获取字段.crs并将它们放入模板中。

例如,假设这是一个.crs文件:

MAT Mathematics
TH 8/26/10 12/12/19
Data Analysis and Intepretation
60

我想查看第 4 行。如果该数字高于 50,我想创建一个如下所示的模板:

Hi your class [[className]] has [[numStudents]]. This is too many. It starts on [[startDate]] and ends on [[endDate]].

我如何告诉 bash 我想要获取第 1 行 (MAT) 的第一个元素并将其放在[[classCode]]每次看到它的位置?

答案1

一个程序怎么样awk。假设课程信息始终如图所示布局,并且每个 CRS 文件只有一个课程信息,则执行以下操作:

awk 'FNR==1{class=$1}
     FNR==2{start=$2; end=$3}
     FNR==4{if ($1>50) printf("Your class %s has %d students. This is too many.\nIt starts on %s and ends on %s\n",class,$1,start,end)}' example.crs 

这根据行号解析文件(使用 的FNR内部每个文件行计数器变量awk),因此依赖于示例中显示的确切结构。这也意味着您可以一次将其应用于多个文件,如下所示

awk ' ... ' *.csr

如果当前目录中有多个课程定义文件。

答案2

#!/usr/bin/python
import os
k=open('filename','r')
o=k.readlines()
u1=o[0].strip().split(' ')[0]
u2=o[1].strip().split(' ')
st= u2[1]
en= u2[2]

if (int(o[3].strip()) > 50):
        print "Hi your class {0} has {1}. This is too many. It starts on {2} and ends on {3}.".format(u1,o[3].strip(),st,en)

测试并运行良好

相关内容